@@ -12,3 +12,4 @@ t/
lib/Devel/Cover/Inc.pm
pm_to_blib
*.out
+*.tar.bz2
@@ -21,10 +21,3 @@
generally, any code run after Devel::Cover's END block won't be covered.
- Empty subs will be ignored in Perl 5.8.1.
-
-- inc_sub test fails under bleadperl:
-
- panic: Can't use %- because Tie::Hash::NamedCapture is not available at /usr/local/pkg/bleadperl/lib/5.9.5/i686-linux/B.pm line 244.
- CHECK failed--call queue aborted.
- panic: Can't use %! because Errno is not available at /usr/local/pkg/bleadperl/lib/5.9.5/i686-linux/B.pm line 244.
- END failed--call queue aborted.
@@ -1,5 +1,20 @@
Devel::Cover.pm history
+Release 0.66 - 12th April 2010
+ - Move to faster method of collecting data. Could be up to twice as fast now.
+ - Add -replace_ops options to be able to revert to previous collection method.
+ - Test against 5.12.0 and update tests as necessry.
+ - Work better with non-existent databases.
+ - XS fixes related to overriding ops rather than replacing runops
+ (Florian Ragwitz).
+ - Don't chmod created directories (mkdir should suffice).
+
+Release 0.65 - 8th August 2009
+ - Fix uninitialised value warning (reported by Andrew Billeb).
+ - Test against 5.8.9 and 5.10.1 (RC1).
+ - Correct deparsed conditional output in elsif conditions.
+ - Unset PERL5OPT when running tests.
+
Release 0.64 - 10th April 2008
- Build on Windows.
- Make "cover -test" work for Module::Build (Michael G Schwern) (rt 34263).
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+ * Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
*
* This software is free. It is licensed under the same terms as Perl itself.
*
@@ -51,10 +51,6 @@ extern "C" {
#define L Perl_debug_log
#define svdump(sv) do_sv_dump(0, L, (SV *)sv, 0, 10, 1, 0);
-/* TODO - make this dynamic */
- /* - fix up whatever is broken with module_relative on Windows here */
-#define REPLACE_OPS 0
-
#define None 0x00000000
#define Statement 0x00000001
#define Branch 0x00000002
@@ -94,6 +90,9 @@ typedef struct
SV *module,
*lastfile;
int tid;
+ int replace_ops;
+ /* - fix up whatever is broken with module_relative on Windows here */
+
#if PERL_VERSION > 8
Perl_ppaddr_t ppaddr[MAXO];
#else
@@ -155,9 +154,7 @@ static double elapsed()
return e;
}
-#endif /* HAS_GETTIMEOFDAY */
-
-#ifdef HAS_TIMES
+#elif defined HAS_TIMES
#ifndef HZ
# ifdef CLK_TCK
@@ -190,7 +187,7 @@ static int cpu()
return e / HZ;
}
-#endif /* HAS_TIMES */
+#endif /* HAS_GETTIMEOFDAY */
static char *get_key(OP *o)
{
@@ -207,7 +204,7 @@ static char *get_key(OP *o)
static char *hex_key(char *key)
{
static char hk[KEY_SZ * 2 + 1];
- int c;
+ unsigned int c;
for (c = 0; c < KEY_SZ; c++)
{
NDEB(D(L, "%d of %d, <%02X> at %p\n",
@@ -243,82 +240,6 @@ static void set_firsts_if_needed(pTHX)
}
}
-static void initialise(pTHX)
-{
- dMY_CXT;
-
- MUTEX_LOCK(&DC_mutex);
- if (!Pending_conditionals)
- {
- Pending_conditionals = newHV();
-#ifdef USE_ITHREADS
- HvSHAREKEYS_off(Pending_conditionals);
-#endif
- }
- if (!Return_ops)
- {
- Return_ops = newHV();
-#ifdef USE_ITHREADS
- HvSHAREKEYS_off(Return_ops);
-#endif
- }
- MUTEX_UNLOCK(&DC_mutex);
-
- MY_CXT.collecting_here = 1;
-
- if (!MY_CXT.covering)
- {
- /* TODO - this probably leaks all over the place */
-
- SV **tmp;
-
- MY_CXT.cover = newHV();
-#ifdef USE_ITHREADS
- HvSHAREKEYS_off(MY_CXT.cover);
-#endif
-
- tmp = hv_fetch(MY_CXT.cover, "statement", 9, 1);
- MY_CXT.statements = newHV();
- *tmp = newRV_inc((SV*) MY_CXT.statements);
-
- tmp = hv_fetch(MY_CXT.cover, "branch", 6, 1);
- MY_CXT.branches = newHV();
- *tmp = newRV_inc((SV*) MY_CXT.branches);
-
- tmp = hv_fetch(MY_CXT.cover, "condition", 9, 1);
- MY_CXT.conditions = newHV();
- *tmp = newRV_inc((SV*) MY_CXT.conditions);
-
-#if CAN_PROFILE
- tmp = hv_fetch(MY_CXT.cover, "time", 4, 1);
- MY_CXT.times = newHV();
- *tmp = newRV_inc((SV*) MY_CXT.times);
-#endif
-
- tmp = hv_fetch(MY_CXT.cover, "module", 6, 1);
- MY_CXT.modules = newHV();
- *tmp = newRV_inc((SV*) MY_CXT.modules);
-
- MY_CXT.files = get_hv("Devel::Cover::Files", FALSE);
-
-#ifdef USE_ITHREADS
- HvSHAREKEYS_off(MY_CXT.statements);
- HvSHAREKEYS_off(MY_CXT.branches);
- HvSHAREKEYS_off(MY_CXT.conditions);
-#if CAN_PROFILE
- HvSHAREKEYS_off(MY_CXT.times);
-#endif
- HvSHAREKEYS_off(MY_CXT.modules);
-#endif
-
- MY_CXT.profiling_key_valid = 0;
- MY_CXT.module = newSVpv("", 0);
- MY_CXT.lastfile = newSVpvn("", 1);
- MY_CXT.covering = All;
- MY_CXT.tid = tid++;
- }
-}
-
static int check_if_collecting(pTHX)
{
dMY_CXT;
@@ -327,7 +248,7 @@ static int check_if_collecting(pTHX)
NDEB(D(L, "check_if_collecting at: %s:%ld\n", file, CopLINE(cCOP)));
if (file && strNE(SvPV_nolen(MY_CXT.lastfile), file))
{
- if (REPLACE_OPS)
+ if (MY_CXT.replace_ops)
{
dSP;
int count;
@@ -472,7 +393,7 @@ static void store_return(pTHX)
if (MY_CXT.collecting_here && PL_op->op_next)
{
- hv_fetch(Return_ops, get_key(PL_op->op_next), KEY_SZ, 1);
+ (void)hv_fetch(Return_ops, get_key(PL_op->op_next), KEY_SZ, 1);
NDEB(D(L, "adding return op %p\n", PL_op->op_next));
}
}
@@ -589,6 +510,7 @@ static void add_conditional(pTHX_ OP *op, int cond)
NDEB(D(L, "Adding %d conditional making %d at %p\n", cond, c, op));
}
+#ifdef USE_ITHREADS
static AV *get_conds(pTHX_ AV *conds)
{
dMY_CXT;
@@ -623,6 +545,7 @@ static AV *get_conds(pTHX_ AV *conds)
return thrconds;
}
+#endif
static void add_condition(pTHX_ SV *cond_ref, int value)
{
@@ -680,7 +603,7 @@ static void dump_conditions(pTHX)
hv_iterinit(Pending_conditionals);
PDEB(D(L, "Pending_conditionals:\n"));
- while (e = hv_iternext(Pending_conditionals))
+ while ((e = hv_iternext(Pending_conditionals)))
{
I32 len;
char *key = hv_iterkey(e, &len);
@@ -729,7 +652,7 @@ static OP *get_condition(pTHX)
else
{
PDEB(D(L, "All is lost, I know not where to go from %p, %p: %p (%s)\n",
- PL_op, PL_op->op_targ, pc, hex_key(get_key(PL_op))));
+ PL_op, (void *)PL_op->op_targ, pc, hex_key(get_key(PL_op))));
dump_conditions(aTHX);
NDEB(svdump(Pending_conditionals));
/* croak("urgh"); */
@@ -757,7 +680,7 @@ static void finalise_conditions(pTHX)
MUTEX_LOCK(&DC_mutex);
hv_iterinit(Pending_conditionals);
- while (e = hv_iternext(Pending_conditionals))
+ while ((e = hv_iternext(Pending_conditionals)))
{
NDEB(D(L, "finalise_conditions\n"));
add_condition(aTHX_ hv_iterval(Pending_conditionals, e), 0);
@@ -829,15 +752,15 @@ static void cover_logop(pTHX)
set_conditional(aTHX_ PL_op, 5, void_context);
- if (PL_op->op_type == OP_AND && left_val ||
- PL_op->op_type == OP_ANDASSIGN && left_val ||
- PL_op->op_type == OP_OR && !left_val ||
- PL_op->op_type == OP_ORASSIGN && !left_val ||
+ if ((PL_op->op_type == OP_AND && left_val) ||
+ (PL_op->op_type == OP_ANDASSIGN && left_val) ||
+ (PL_op->op_type == OP_OR && !left_val) ||
+ (PL_op->op_type == OP_ORASSIGN && !left_val) ||
#if PERL_VERSION > 8
- PL_op->op_type == OP_DOR && !left_val_def ||
- PL_op->op_type == OP_DORASSIGN && !left_val_def ||
+ (PL_op->op_type == OP_DOR && !left_val_def) ||
+ (PL_op->op_type == OP_DORASSIGN && !left_val_def) ||
#endif
- PL_op->op_type == OP_XOR)
+ (PL_op->op_type == OP_XOR))
{
/* no short circuit */
@@ -932,12 +855,6 @@ static void cover_logop(pTHX)
}
}
-static OP *runop(pTHX_ int op)
-{
- dMY_CXT;
- return CALL_FPTR(MY_CXT.ppaddr[op])(aTHX);
-}
-
static OP *dc_nextstate(pTHX)
{
dMY_CXT;
@@ -1043,28 +960,127 @@ static OP *dc_exec(pTHX)
return CALL_FPTR(MY_CXT.ppaddr[OP_EXEC])(aTHX);
}
+static void replace_ops (pTHX) {
+ dMY_CXT;
+ int i;
+ NDEB(D(L, "initialising replace_ops\n"));
+ for (i = 0; i < MAXO; i++)
+ MY_CXT.ppaddr[i] = PL_ppaddr[i];
+
+ PL_ppaddr[OP_NEXTSTATE] = MEMBER_TO_FPTR(dc_nextstate);
+#if PERL_VERSION <= 10
+ PL_ppaddr[OP_SETSTATE] = MEMBER_TO_FPTR(dc_setstate);
+#endif
+ PL_ppaddr[OP_DBSTATE] = MEMBER_TO_FPTR(dc_dbstate);
+ PL_ppaddr[OP_ENTERSUB] = MEMBER_TO_FPTR(dc_entersub);
+ PL_ppaddr[OP_COND_EXPR] = MEMBER_TO_FPTR(dc_cond_expr);
+ PL_ppaddr[OP_AND] = MEMBER_TO_FPTR(dc_and);
+ PL_ppaddr[OP_ANDASSIGN] = MEMBER_TO_FPTR(dc_andassign);
+ PL_ppaddr[OP_OR] = MEMBER_TO_FPTR(dc_or);
+ PL_ppaddr[OP_ORASSIGN] = MEMBER_TO_FPTR(dc_orassign);
+#if PERL_VERSION > 8
+ PL_ppaddr[OP_DOR] = MEMBER_TO_FPTR(dc_dor);
+ PL_ppaddr[OP_DORASSIGN] = MEMBER_TO_FPTR(dc_dorassign);
+#endif
+ PL_ppaddr[OP_XOR] = MEMBER_TO_FPTR(dc_xor);
+ PL_ppaddr[OP_REQUIRE] = MEMBER_TO_FPTR(dc_require);
+ PL_ppaddr[OP_EXEC] = MEMBER_TO_FPTR(dc_exec);
+}
+
+static void initialise(pTHX)
+{
+ dMY_CXT;
+
+ NDEB(D(L, "initialising\n"));
+
+ MUTEX_LOCK(&DC_mutex);
+ if (!Pending_conditionals)
+ {
+ Pending_conditionals = newHV();
+#ifdef USE_ITHREADS
+ HvSHAREKEYS_off(Pending_conditionals);
+#endif
+ }
+ if (!Return_ops)
+ {
+ Return_ops = newHV();
+#ifdef USE_ITHREADS
+ HvSHAREKEYS_off(Return_ops);
+#endif
+ }
+ MUTEX_UNLOCK(&DC_mutex);
+
+ MY_CXT.collecting_here = 1;
+
+ if (!MY_CXT.covering)
+ {
+ /* TODO - this probably leaks all over the place */
+
+ SV **tmp;
+
+ MY_CXT.cover = newHV();
+#ifdef USE_ITHREADS
+ HvSHAREKEYS_off(MY_CXT.cover);
+#endif
+
+ tmp = hv_fetch(MY_CXT.cover, "statement", 9, 1);
+ MY_CXT.statements = newHV();
+ *tmp = newRV_inc((SV*) MY_CXT.statements);
+
+ tmp = hv_fetch(MY_CXT.cover, "branch", 6, 1);
+ MY_CXT.branches = newHV();
+ *tmp = newRV_inc((SV*) MY_CXT.branches);
+
+ tmp = hv_fetch(MY_CXT.cover, "condition", 9, 1);
+ MY_CXT.conditions = newHV();
+ *tmp = newRV_inc((SV*) MY_CXT.conditions);
+
+#if CAN_PROFILE
+ tmp = hv_fetch(MY_CXT.cover, "time", 4, 1);
+ MY_CXT.times = newHV();
+ *tmp = newRV_inc((SV*) MY_CXT.times);
+#endif
+
+ tmp = hv_fetch(MY_CXT.cover, "module", 6, 1);
+ MY_CXT.modules = newHV();
+ *tmp = newRV_inc((SV*) MY_CXT.modules);
+
+ MY_CXT.files = get_hv("Devel::Cover::Files", FALSE);
+
+#ifdef USE_ITHREADS
+ HvSHAREKEYS_off(MY_CXT.statements);
+ HvSHAREKEYS_off(MY_CXT.branches);
+ HvSHAREKEYS_off(MY_CXT.conditions);
+#if CAN_PROFILE
+ HvSHAREKEYS_off(MY_CXT.times);
+#endif
+ HvSHAREKEYS_off(MY_CXT.modules);
+#endif
+
+ MY_CXT.profiling_key_valid = 0;
+ MY_CXT.module = newSVpv("", 0);
+ MY_CXT.lastfile = newSVpvn("", 1);
+ MY_CXT.covering = All;
+ MY_CXT.tid = tid++;
+
+ MY_CXT.replace_ops = SvTRUE(get_sv("Devel::Cover::Replace_ops", FALSE));
+ NDEB(D(L, "running with Replace_ops as %d\n", MY_CXT.replace_ops));
+ }
+}
+
static int runops_cover(pTHX)
{
dMY_CXT;
NDEB(D(L, "entering runops_cover\n"));
- initialise(aTHX);
-
#if defined HAS_GETTIMEOFDAY
elapsed();
#elif defined HAS_TIMES
cpu();
#endif
- if (REPLACE_OPS)
- {
- while ((PL_op = CALL_FPTR(PL_op->op_ppaddr)(aTHX)))
- {
- PERL_ASYNC_CHECK();
- }
- }
- else for (;;)
+ for (;;)
{
NDEB(D(L, "running func %p from %p (%s)\n",
PL_op->op_ppaddr, PL_op, OP_NAME(PL_op)));
@@ -1228,8 +1244,12 @@ set_criteria(flag)
PREINIT:
dMY_CXT;
PPCODE:
+ MY_CXT.covering = flag;
/* fprintf(stderr, "Cover set to %d\n", flag); */
- PL_runops = (MY_CXT.covering = flag) ? runops_cover : runops_orig;
+ if (MY_CXT.replace_ops) {
+ return;
+ }
+ PL_runops = MY_CXT.covering ? runops_cover : runops_orig;
void
add_criteria(flag)
@@ -1237,7 +1257,11 @@ add_criteria(flag)
PREINIT:
dMY_CXT;
PPCODE:
- PL_runops = (MY_CXT.covering |= flag) ? runops_cover : runops_orig;
+ MY_CXT.covering |= flag;
+ if (MY_CXT.replace_ops) {
+ return;
+ }
+ PL_runops = MY_CXT.covering ? runops_cover : runops_orig;
void
remove_criteria(flag)
@@ -1245,7 +1269,11 @@ remove_criteria(flag)
PREINIT:
dMY_CXT;
PPCODE:
- PL_runops = (MY_CXT.covering &= ~flag) ? runops_cover : runops_orig;
+ MY_CXT.covering &= ~flag;
+ if (MY_CXT.replace_ops) {
+ return;
+ }
+ PL_runops = MY_CXT.covering ? runops_cover : runops_orig;
unsigned
get_criteria()
@@ -1338,11 +1366,12 @@ coverage(final)
CODE:
NDEB(D(L, "Getting coverage %d\n", final));
if (final) finalise_conditions(aTHX);
- ST(0) = sv_newmortal();
if (MY_CXT.cover)
- sv_setsv(ST(0), newRV_inc((SV*) MY_CXT.cover));
+ RETVAL = newRV_inc((SV*) MY_CXT.cover);
else
- ST(0) = &PL_sv_undef;
+ RETVAL = &PL_sv_undef;
+ OUTPUT:
+ RETVAL
SV *
get_key(o)
@@ -1407,33 +1436,14 @@ BOOT:
#ifdef USE_ITHREADS
MUTEX_INIT(&DC_mutex);
#endif
- PL_runops = runops_cover;
+ initialise(aTHX);
+ if (MY_CXT.replace_ops) {
+ replace_ops(aTHX);
+ }
+ else {
+ PL_runops = runops_cover;
+ }
#if PERL_VERSION > 6
PL_savebegin = TRUE;
#endif
- if (REPLACE_OPS)
- {
- int i;
- for (i = 0; i < MAXO; i++)
- MY_CXT.ppaddr[i] = PL_ppaddr[i];
-
- PL_ppaddr[OP_NEXTSTATE] = MEMBER_TO_FPTR(dc_nextstate);
-#if PERL_VERSION <= 10
- PL_ppaddr[OP_SETSTATE] = MEMBER_TO_FPTR(dc_setstate);
-#endif
- PL_ppaddr[OP_DBSTATE] = MEMBER_TO_FPTR(dc_dbstate);
- PL_ppaddr[OP_ENTERSUB] = MEMBER_TO_FPTR(dc_entersub);
- PL_ppaddr[OP_COND_EXPR] = MEMBER_TO_FPTR(dc_cond_expr);
- PL_ppaddr[OP_AND] = MEMBER_TO_FPTR(dc_and);
- PL_ppaddr[OP_ANDASSIGN] = MEMBER_TO_FPTR(dc_andassign);
- PL_ppaddr[OP_OR] = MEMBER_TO_FPTR(dc_or);
- PL_ppaddr[OP_ORASSIGN] = MEMBER_TO_FPTR(dc_orassign);
-#if PERL_VERSION > 8
- PL_ppaddr[OP_DOR] = MEMBER_TO_FPTR(dc_dor);
- PL_ppaddr[OP_DORASSIGN] = MEMBER_TO_FPTR(dc_dorassign);
-#endif
- PL_ppaddr[OP_XOR] = MEMBER_TO_FPTR(dc_xor);
- PL_ppaddr[OP_REQUIRE] = MEMBER_TO_FPTR(dc_require);
- PL_ppaddr[OP_EXEC] = MEMBER_TO_FPTR(dc_exec);
- }
}
@@ -1,7 +1,6 @@
.gitignore
all_versions
BUGS
-buildperl
CHANGES
cover
Cover.xs
@@ -40,6 +39,7 @@ lib/Devel/Cover/Truth_Table.pm
lib/Devel/Cover/Tutorial.pod
lib/Devel/Cover/Web.pm
Makefile.PL
+makeh
MANIFEST This list of files
MANIFEST.SKIP
META.yml
@@ -102,6 +102,8 @@ tests/trivial
tests/uncoverable
TODO
typemap
+utils/install/buildperl
+utils/install/System.pm
test_output/cover/alias.5.006001
test_output/cover/alias1.5.006001
test_output/cover/alias1.5.008
@@ -114,11 +116,11 @@ test_output/cover/cond_and.5.008001
test_output/cover/cond_branch.5.006001
test_output/cover/cond_branch.5.008
test_output/cover/cond_branch.5.008001
+test_output/cover/cond_branch.5.012000
test_output/cover/cond_or.5.006001
test_output/cover/cond_or.5.006002
test_output/cover/cond_or.5.008
test_output/cover/cond_or.5.008001
-test_output/cover/cond_or.5.009005
test_output/cover/cond_or.5.010000
test_output/cover/cond_xor.5.006001
test_output/cover/cond_xor.5.008
@@ -149,7 +151,7 @@ test_output/cover/if.5.006001
test_output/cover/if.5.008
test_output/cover/inc_sub.5.006001
test_output/cover/inc_sub.5.008
-test_output/cover/inc_sub.5.009005
+test_output/cover/inc_sub.5.010000
test_output/cover/md5.5.006001
test_output/cover/module1.5.006001
test_output/cover/module1.5.008
@@ -182,7 +184,7 @@ test_output/cover/sort.5.008
test_output/cover/special_blocks.5.006001
test_output/cover/special_blocks.5.008
test_output/cover/special_blocks.5.008001
-test_output/cover/special_blocks.5.009005
+test_output/cover/special_blocks.5.010000
test_output/cover/statement.5.006001
test_output/cover/subs_only.5.006001
test_output/cover/t0.5.006001
@@ -195,3 +197,4 @@ test_output/cover/t2.5.008
test_output/cover/t2.5.008001
test_output/cover/trivial.5.006001
test_output/cover/uncoverable.5.006001
+test_output/cover/uncoverable.5.012000
@@ -22,3 +22,5 @@ lib/Devel/Cover/Inc.pm$
.debug$
^tmp/
^bugs/
+.git/
+.tar.bz2$
@@ -1,6 +1,6 @@
--- #YAML:1.0
name: Devel-Cover
-version: 0.65
+version: 0.66
abstract: Code coverage metrics for Perl
author:
- Paul Johnson (pjcj@cpan.org)
@@ -17,7 +17,7 @@ no_index:
directory:
- t
- inc
-generated_by: ExtUtils::MakeMaker version 6.55_02
+generated_by: ExtUtils::MakeMaker version 6.56
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
version: 1.4
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -19,8 +19,8 @@ use File::Copy;
$| = 1;
-my $Version = "0.65";
-my $Date = "8th August 2009";
+my $Version = "0.66";
+my $Date = "12th April 2010";
my $Author = 'pjcj@cpan.org';
my @perlbug = ("perlbug", "-a", $Author,
@@ -39,7 +39,7 @@ my @inc = sort keys %inc;
open I, ">lib/Devel/Cover/Inc.pm"
or die "Cannot open lib/Devel/Cover/Inc.pm: $!";
print I <<"EOI";
-# Copyright 2001-2009, Paul Johnson (pjcj\@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj\@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -108,7 +108,7 @@ for my $t (readdir D)
print T <<EOT;
#!$^X
-# Copyright 2002-2009, Paul Johnson (pjcj\@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj\@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -313,7 +313,7 @@ else
print "not found\n\n$e\n";
}
-my $latest_tested = "5.010001";
+my $latest_tested = "5.012000";
print <<EOM if $] > $latest_tested;
Devel::Cover $Version has not been tested with perl $].
@@ -476,10 +476,12 @@ dump :
FONT = 8x13
FONT = -sun-screen-medium-r-normal-*-*-70-*-*-m-*-sun-fontspecific
FONT = "Bitstream Vera Sans Mono 8"
+GEOM = 260x85+0+0
diff : out
-\t \$(PERL) -i -pe '\$\$t = index \$\$_, "time code" if !defined \$\$t || \$\$t < 0; substr \$\$_, \$\$t, 7, "" if /^line err stmt/ .. /^--------/ and length > \$\$t' \$(TEST).out
-\t gvim -d -font \$(FONT) `\$(PERL) -Mblib -MDevel::Cover::Test -e '\$\$t = Devel::Cover::Test->new("\$(TEST)", run_test_at_end => 0); print \$\$t->cover_gold'` \$(TEST).out
+\t \$(PERL) makeh strip_criterion 'time' \$(TEST).out
+\t \$(PERL) makeh strip_criterion ' pod' \$(TEST).out
+\t gvim -geom \$(GEOM) -d -font \$(FONT) `\$(PERL) -Mblib -MDevel::Cover::Test -e '\$\$t = Devel::Cover::Test->new("\$(TEST)", run_test_at_end => 0); print \$\$t->cover_gold'` \$(TEST).out
gold : pure_all
\t \$(PERL) create_gold \$(TEST)
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -32,7 +32,7 @@ sub get_options
[ map { ($_, "$_-thr") }
qw( 5.6.1 5.6.2
5.8.0 5.8.1 5.8.2 5.8.3 5.8.4 5.8.5 5.8.6 5.8.7 5.8.8 5.8.9
- 5.10.0 5.10.1 5.11.0 ) ]
+ 5.10.0 5.10.1 5.11.0 5.12.0-RC5 ) ]
unless @{$Options->{version}};
$Options->{version} =
[ grep eval { !system "perl$_ -v" }, @{$Options->{version}} ];
@@ -1,507 +0,0 @@
-#!/usr/bin/perl -w
-
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
-
-# This software is free. It is licensed under the same terms as Perl itself.
-
-# The latest version of this software should be available from my homepage:
-# http://www.pjcj.net
-
-use strict;
-
-require 5.004;
-
-use lib <~pjcj/g/tools/perl/local>;
-use lib <~pjcj/wesley/g/tools/perl/local>;
-
-use System "sys:dsys: command, error";
-
-my $Usage =
- "Usage: $0 /perl/source/code /installation [perl|modules|manual|apache|mod_perl|cpancover]";
-
-my $Perl_src = shift || die "$Usage\n";
-my $Installation = shift || die "$Usage\n";
-my $Options = "@ARGV" || "perl modules manual cpancover";
-
-my $Src_dir = <~pjcj/wesley/g/perl>;
- $Src_dir = <~pjcj/g/perl> unless -d $Src_dir;
-my $Perl_src_dir = "$Src_dir/src";
-my $Mod_src_dir = "$Src_dir/modules";
-
-my $Perl_installation;
-my $Perl;
-my $Perl_dir;
-
-my $top = `pwd`;
-chomp $top;
-my $Build = "$top/build";
-
-sub get_src
-{
- my ($package, $dir) = @_;
- $dir ||= $Src_dir;
- my $src = $package;
- $src = "$package.tar.gz" unless -f $src;
- $src = "$package.tar.bz2" unless -f $src;
- $src = "$dir/$package" unless -f $src;
- $src = "$dir/$package.tar.gz" unless -f $src;
- $src = "$dir/$package.tar.bz2" unless -f $src;
- $src = $package unless -f $src;
- # die "Can't find $package in $dir ($Src_dir)\n" unless -f $src;
- return $src;
-}
-
-sub building ($)
-{
- my ($option) = @_;
- return $Options =~ /\b$option\b/i;
-}
-
-sub uncompress
-{
- $_[0] =~ /2$/ ? "bzcat" : "zcat"
-}
-
-sub build ($$$)
-{
- my ($module, $src_dir, $opts) = @_;
-
- chdir $Build or die "Can't chdir $Build: $!";
- my $src = get_src($module, $src_dir);
-
- $opts =
- {
- "unpack" => sub { dsys uncompress($src) . " $src | tar xf -" },
- dir => sub { $src =~ m|.*/(.*)\.tar\.gz$|; $1 },
- config => sub { dsys "$Perl Makefile.PL" },
- make => sub { dsys "make" },
- test => sub { sys "make test" }, # some modules fail their tests...
- install => sub { dsys "make install" },
- %$opts
- };
-
- print "build $module\n";
- $opts->{"unpack"}->();
- my $dir = $opts->{dir}->();
- chdir $dir or die "Can't chdir $dir: $!";
- $opts->{config}->();
- $opts->{make}->();
- $opts->{test}->();
- $opts->{install}->();
- print "built $module\n";
-}
-
-sub feed ($$)
-{
- my ($command, $input) = @_;
- open COMMAND, "| $command" or die "Cannot run $command:$!\n";
- print COMMAND $input;
- close COMMAND or die "Cannot run $command:$!\n";
-}
-
-sub main ()
-{
- print "Building $Options\n";
-
- dsys "rm -rf $Build";
-
- mkdir $Build, 0750 or die "Can't mkdir $Build: $!";
-
- $ENV{HOME} = $Perl_installation;
-
- if (building "perl")
- {
- chdir $Build or die "Can't chdir $Build: $!";
-
- dsys "rm -rf $Perl_installation";
-
- dsys uncompress($Perl_src) . " $Perl_src | tar xf -";
-
- chdir $Perl_dir or die "Can't chdir $Perl_dir: $!";
-
- my @opts =
- (
- "-Dperladmin='paul\@pjcj.net'",
- "-Dcc=gcc",
- "-Dprefix=$Perl_installation",
- );
-
- dsys "sh ./Configure -des @opts";
-
- dsys "make";
- sys "make test";
- dsys "make install";
-
- $Options =~ s/\bperl\b//;
- }
-
- $ENV{PATH} .= ":$Perl_installation/bin"; # dodgy stuff that just calls perl
-
- exec "yes '' | $Perl $0 $Perl_src $Installation $Options" if $^X ne $Perl;
-
- if (building "modules")
- {
- my @first =
- qw(
- HTML::Tagset
- );
-
- my @manual =
- qw(
- HTML::Parser
- Term::ReadKey
- Term::ReadLine::Perl
- );
-
- my @modules =
- qw(
- Bundle::LWP
-
- ExtUtils::ParseXS
- Archive::Tar
- URI
- Module::Build
- Pod::Coverage
- Bundle::CPAN
- Module::Signature
- Digest::base
- Digest::MD5
-
- AppConfig
- Template
-
- YAML
- GD
- Mail::SpamAssassin
- Net::DNS
-
- Compress::Zlib
- Mime::Base64
- LWP
- Test::Reporter
- DBI
- DBD::mysql
- Mail::Mailer
- Bit::Vector
- Date::Calc
- DBD::Oracle
- Digest::HMAC
- Digest::SHA1
- Net::SSLeay
- IO::Socket::SSL
- IO::Stringy
- MIME::Lite
- MIME::Tools
- Net::Telnet
- Parse::RecDescent
- Spreadsheet::WriteExcel
- XML::Parser
- GD::Text
- GD::Graph
- Image::Info
- Image::Size
- XML::Parser::PerlSAX
- XML::DOM
- XML::XPath
- XML::Simple
- Apache::DBI
- Apache::Session
- Archive::Zip
- SOAP::Lite
- XML::Writer
- Bundle::BioPerl
- Bio::Perl
- Error
- Cache::Cache
- HTML::Template
- CGI::Application
- CGI::Kwiki
- CGI::Session
- List::Util
- Class::DBI
- Class::Date
- Config::IniFiles
- Convert::ASN1
- Crypt::Blowfish
- Crypt::CBC
- Crypt::DES
- Crypt::SSLeay
- Data::ShowTable
- Date::Manip
- Text::CSV_XS
- DBD::CSV
- DBD::ODBC
- DBD::Pg
- DBIx::SearchBuilder
- IO::Tty
- Expect
- Params::Validate
- HTML::Mason
- HTML::Tree
- Inline
- Apache::Request
- Mac::Carbon
- Mac::Glue
- Mail::Box
- Mail::Sendmail
- MD5
- MP3::Info
- Msql
- Net::Daemon
- Net::SNMP
- Net::SSH::Perl
- PAR
- PDF::API2
- PDL
- Net::LDAP
- Image::Magick
- Pod::Simple
- POE
- Regexp::Common
- SPOPS
- Spreadsheet::ParseExcel
- Text::Iconv
- Text::Template
- Time::ParseDate
- Time::Zone
- WWW::Mechanize
- XML::DOM
- XML::NamespaceSupport
- XML::SAX
- XML::LibXML
-
- Maypole
-
- Test::Memory::Cycle
- Test::Pod::Coverage
- Data/Grove.pm
- Tie::IxHash
-
- Bundle::HTML::Mason
- Bundle::XML
- Bundle::BricolagePlus
- Bundle::Perl6
- Bundle::Slash
- Bundle::DateTime
- Bundle::Tk
- Bundle::SSH
- Bundle::Test
- );
-
- # @modules = @modules[0 .. 11];
-
- my @not_so_hot =
- qw(
- Bundle::Apache
- );
-
- my $config =
- {
- "Term::ReadLine::Perl" =>
- {
- test => sub
- {
- # interactive test - just skip it
- },
- },
- "HTML::Parser" =>
- {
- config => sub
- {
- my $input = <<EOF;
-n
-EOF
- feed "$Perl Makefile.PL", $input;
- },
- },
-
- "Msql-Mysql-modules-1.2215" =>
- {
- config => sub
- {
- dsys "$Perl Makefile.PL" .
- " --noprompt" .
- " --debug" .
- " --verbose" .
- " --mysql-install" .
- " --nomsql-install" .
- " --mysql-incdir=/usr/local/pkg/mysql/include/mysql" .
- " --mysql-libdir=/usr/local/pkg/mysql/lib/mysql" .
- " --mysql-test-db test" .
- " --mysql-test-user root" .
- " --mysql-test-pass" .
- " --mysql-test-host ride"
- },
- },
- };
-
- my $f = "$Perl_installation/.cpan";
- -d $f or mkdir $f, 0750 or die "Can't mkdir $f: $!";
- $f.= "/CPAN";
- -d $f or mkdir $f, 0750 or die "Can't mkdir $f: $!";
- $f.= "/MyConfig.pm";
- open F, ">", $f or die "Can't open $f: $!";
- print F <<EOF;
-\$CPAN::Config = {
- 'build_cache' => q[100000],
- 'build_dir' => q[$Perl_installation/.cpan/build],
- 'cache_metadata' => q[1],
- 'cpan_home' => q[$Perl_installation/.cpan],
- 'dontload_hash' => { },
- 'ftp' => q[/usr/bin/ftp],
- 'ftp_proxy' => q[],
- 'getcwd' => q[cwd],
- 'gpg' => q[/usr/bin/gpg],
- 'gzip' => q[/bin/gzip],
- 'histfile' => q[$Perl_installation/.cpan/histfile],
- 'histsize' => q[100],
- 'http_proxy' => q[],
- 'inactivity_timeout' => q[0],
- 'index_expire' => q[1],
- 'inhibit_startup_message' => q[0],
- 'keep_source_where' => q[$Perl_installation/.cpan_sources],
- 'lynx' => q[/usr/bin/lynx],
- 'make' => q[/usr/bin/make],
- 'make_arg' => q[],
- 'make_install_arg' => q[],
- 'makepl_arg' => q[],
- 'ncftp' => q[],
- 'ncftpget' => q[],
- 'no_proxy' => q[],
- 'pager' => q[less],
- 'prerequisites_policy' => q[follow],
- 'scan_cache' => q[atstart],
- 'shell' => q[/bin/zsh],
- 'tar' => q[/bin/tar],
- 'term_is_latin' => q[1],
- 'unzip' => q[/usr/bin/unzip],
- 'urllist' => [q[ftp://sunsite.cnlab-switch.ch/mirror/CPAN/], q[ftp://ftp.k-informatik.ch/pub/CPAN/]],
- 'wget' => q[/usr/bin/wget],
-};
-1;
-EOF
- close F or die "Can't close $f: $!";
-
- eval "use CPAN";
-
- my $install = sub
- {
- my ($m) = @_;
- print "Installing $m via CPAN\n";
- # I wish I knew how to do this properly. I just want to
- # force install the thing.
- my $mod = CPAN::Shell->expandany($m);
- if ($mod)
- {
- return if $mod->uptodate;
- # $mod->force("install");
- CPAN::Shell->install($_);
- }
- else
- {
- CPAN::Shell->install($_);
- }
- # CPAN::Shell->expandany($_)->install;
- };
-
- $install->($_) for @first;
-
- for my $mod (@manual)
- {
- # my @mods = CPAN::Complete::cpl_any($mod);
- # print "Mods for $mod are: @mods\n";
- # next;
- print "Installing $mod \n";
- next unless building "manual";
- my $m = CPAN::Shell->expandany($mod);
- print "Getting version ", $m->cpan_version, "\n";
- $m->get;
- my $b = $m->cpan_file;
- $b =~ s|.*/||;
- $b =~ s|\.tar.gz||;
- $b = "$Perl_installation/.cpan/build/$b";
- die "Can't find build dir $b" unless -d $b;
- # use Data::Dumper; print Dumper $m;
- print "Building in $b\n";
- my $c =
- {
- %{$config->{$mod} || {}},
- unpack => sub {},
- dir => sub { $b },
- # make => sub {},
- # test => sub {},
- # install => sub { $m->install },
- # install => sub { $m->install; dsys "make test install" },
- };
- build $mod, $b, $c;
- }
-
- $install->($_) for @modules;
- }
-
- my $apache = "apache_1.3.31";
- my $mod_perl = "mod_perl-1.29";
-
- build $apache,
- $Perl_src_dir,
- {
- config => sub {},
- make => sub {},
- test => sub {},
- install => sub {},
- }
- if building "apache";
-
- build $mod_perl,
- $Perl_src_dir,
- {
- config => sub
- {
- dsys "$Perl Makefile.PL" .
- " APACHE_SRC=../$apache/src" .
- " DO_HTTPD=1 USE_APACI=1 PREP_HTTPD=1 EVERYTHING=1";
- },
- }
- if building "mod_perl";
-
- build $apache,
- $Perl_src_dir,
- {
- "unpack" => sub {},
- config => sub
- {
- dsys "./configure" .
- " --prefix=$Installation/$apache" .
- " --enable-module=rewrite" .
- " --activate-module=src/modules/perl/libperl.a";
- },
- }
- if building "apache";
-
- if (building "cpancover")
- {
- (my $dc = $0) =~ s|/[^/]+$||;
- chdir $dc or die "Can't chdir $dc";
- system "$Perl Makefile.PL";
- system "make clean";
- system "$Perl Makefile.PL";
- system "make test";
- system "make install";
- my $od = "$Perl_installation/cpancover." . time;
- my $c = "cpancover -outputdir $od" .
- " -dir $Perl_installation/.cpan/build";
- print "Running $c\n";
- exec "yes '' | $c";
- }
-}
-
-$Perl_src = get_src($Perl_src, $Perl_src_dir);
-
-($Perl_dir) = $Perl_src =~ m!.*/(.*)\.tar\.(gz|bz2)$!;
-print "perl src is $Perl_src\n";
-print "perl dir is $Perl_dir\n";
-
-$Perl_installation .= "$Installation/$Perl_dir";
-$Perl = "$Perl_installation/bin/perl";
-
-main
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -12,9 +12,9 @@ require 5.6.1;
use strict;
use warnings;
-our $VERSION = "0.65";
+our $VERSION = "0.66";
-use Devel::Cover::DB 0.65;
+use Devel::Cover::DB 0.66;
use Config;
use Cwd "abs_path";
@@ -82,7 +82,6 @@ sub delete_db
{
for my $del (@_)
{
- print "Deleting database $del\n" unless $Options->{silent};
my $db = Devel::Cover::DB->new(db => $del);
unless ($db->is_valid)
{
@@ -90,6 +89,7 @@ sub delete_db
unless $Options->{silent};
next;
}
+ print "Deleting database $del\n" if $db->exists && !$Options->{silent};
$db->delete;
rmtree($del);
}
@@ -444,11 +444,11 @@ See the BUGS file.
=head1 VERSION
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
=head1 LICENCE
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
This software is free. It is licensed under the same terms as Perl itself.
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -12,9 +12,9 @@ require 5.6.1;
use strict;
use warnings;
-our $VERSION = "0.65";
+our $VERSION = "0.66";
-use Devel::Cover::DB 0.65;
+use Devel::Cover::DB 0.66;
use Cwd ();
use Getopt::Long;
@@ -341,7 +341,7 @@ package Devel::Cover::Cpancover::Template::Provider;
use strict;
use warnings;
-our $VERSION = "0.65";
+our $VERSION = "0.66";
use base "Template::Provider";
@@ -378,8 +378,8 @@ $Templates{html} = <<'EOT';
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<!--
-This file was generated by Devel::Cover Version 0.65
-Devel::Cover is copyright 2001-2006, Paul Johnson (pjcj\@cpan.org)
+This file was generated by Devel::Cover Version 0.66
+Devel::Cover is copyright 2001-2010, Paul Johnson (pjcj\@cpan.org)
Devel::Cover is free. It is licensed under the same terms as Perl itself.
The latest version of Devel::Cover should be available from my homepage:
http://www.pjcj.net
@@ -479,11 +479,11 @@ The following exit values are returned:
=head1 VERSION
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
=head1 LICENCE
-Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
This software is free. It is licensed under the same terms as Perl itself.
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -12,14 +12,14 @@ require 5.6.1;
use strict;
use warnings;
-our $VERSION = "0.65";
+our $VERSION = "0.66";
use blib;
use Config;
exit if $Config{useithreads};
-use Devel::Cover::Test 0.65;
+use Devel::Cover::Test 0.66;
my @tests = @ARGV;
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -12,9 +12,9 @@ require 5.6.1;
use strict;
use warnings;
-our $VERSION = "0.65";
+our $VERSION = "0.66";
-use Devel::Cover::DB 0.65;
+use Devel::Cover::DB 0.66;
use File::Path;
use Getopt::Long;
@@ -168,11 +168,11 @@ Huh?
=head1 VERSION
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
=head1 LICENCE
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
This software is free. It is licensed under the same terms as Perl itself.
@@ -1,4 +1,4 @@
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -10,7 +10,7 @@ package Devel::Cover::Annotation::Random;
use strict;
use warnings;
-our $VERSION = "0.65";
+our $VERSION = "0.66";
use Getopt::Long;
@@ -103,11 +103,11 @@ Huh?
=head1 VERSION
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
=head1 LICENCE
-Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
This software is free. It is licensed under the same terms as Perl itself.
@@ -1,4 +1,4 @@
-# Copyright 2005-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2005-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -10,7 +10,7 @@ package Devel::Cover::Annotation::Svk;
use strict;
use warnings;
-our $VERSION = "0.65";
+our $VERSION = "0.66";
use Getopt::Long;
use Digest::MD5;
@@ -175,11 +175,11 @@ Huh?
=head1 VERSION
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
=head1 LICENCE
-Copyright 2005-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2005-2010, Paul Johnson (pjcj@cpan.org)
This software is free. It is licensed under the same terms as Perl itself.
@@ -1,4 +1,4 @@
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -10,7 +10,7 @@ package Devel::Cover::Branch;
use strict;
use warnings;
-our $VERSION = "0.65";
+our $VERSION = "0.66";
use base "Devel::Cover::Criterion";
@@ -88,11 +88,11 @@ Huh?
=head1 VERSION
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
=head1 LICENCE
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
This software is free. It is licensed under the same terms as Perl itself.
@@ -1,4 +1,4 @@
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -10,7 +10,7 @@ package Devel::Cover::Condition;
use strict;
use warnings;
-our $VERSION = "0.65";
+our $VERSION = "0.66";
use base "Devel::Cover::Branch";
@@ -50,11 +50,11 @@ Huh?
=head1 VERSION
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
=head1 LICENCE
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
This software is free. It is licensed under the same terms as Perl itself.
@@ -1,4 +1,4 @@
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -10,7 +10,7 @@ package Devel::Cover::Condition_and_2;
use strict;
use warnings;
-our $VERSION = "0.65";
+our $VERSION = "0.66";
use base "Devel::Cover::Condition";
@@ -46,11 +46,11 @@ Huh?
=head1 VERSION
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
=head1 LICENCE
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
This software is free. It is licensed under the same terms as Perl itself.
@@ -1,4 +1,4 @@
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -10,7 +10,7 @@ package Devel::Cover::Condition_and_3;
use strict;
use warnings;
-our $VERSION = "0.65";
+our $VERSION = "0.66";
use base "Devel::Cover::Condition";
@@ -46,11 +46,11 @@ Huh?
=head1 VERSION
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
=head1 LICENCE
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
This software is free. It is licensed under the same terms as Perl itself.
@@ -1,4 +1,4 @@
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -10,7 +10,7 @@ package Devel::Cover::Condition_or_2;
use strict;
use warnings;
-our $VERSION = "0.65";
+our $VERSION = "0.66";
use base "Devel::Cover::Condition";
@@ -46,11 +46,11 @@ Huh?
=head1 VERSION
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
=head1 LICENCE
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
This software is free. It is licensed under the same terms as Perl itself.
@@ -1,4 +1,4 @@
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -10,7 +10,7 @@ package Devel::Cover::Condition_or_3;
use strict;
use warnings;
-our $VERSION = "0.65";
+our $VERSION = "0.66";
use base "Devel::Cover::Condition";
@@ -46,11 +46,11 @@ Huh?
=head1 VERSION
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
=head1 LICENCE
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
This software is free. It is licensed under the same terms as Perl itself.
@@ -1,4 +1,4 @@
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -10,7 +10,7 @@ package Devel::Cover::Condition_xor_4;
use strict;
use warnings;
-our $VERSION = "0.65";
+our $VERSION = "0.66";
use base "Devel::Cover::Condition";
@@ -45,11 +45,11 @@ Huh?
=head1 VERSION
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
=head1 LICENCE
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
This software is free. It is licensed under the same terms as Perl itself.
@@ -1,4 +1,4 @@
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -10,19 +10,19 @@ package Devel::Cover::Criterion;
use strict;
use warnings;
-our $VERSION = "0.65";
+our $VERSION = "0.66";
-use Devel::Cover::Statement 0.65;
-use Devel::Cover::Branch 0.65;
-use Devel::Cover::Condition 0.65;
-use Devel::Cover::Condition_or_2 0.65;
-use Devel::Cover::Condition_or_3 0.65;
-use Devel::Cover::Condition_and_2 0.65;
-use Devel::Cover::Condition_and_3 0.65;
-use Devel::Cover::Condition_xor_4 0.65;
-use Devel::Cover::Subroutine 0.65;
-use Devel::Cover::Time 0.65;
-use Devel::Cover::Pod 0.65;
+use Devel::Cover::Statement 0.66;
+use Devel::Cover::Branch 0.66;
+use Devel::Cover::Condition 0.66;
+use Devel::Cover::Condition_or_2 0.66;
+use Devel::Cover::Condition_or_3 0.66;
+use Devel::Cover::Condition_and_2 0.66;
+use Devel::Cover::Condition_and_3 0.66;
+use Devel::Cover::Condition_xor_4 0.66;
+use Devel::Cover::Subroutine 0.66;
+use Devel::Cover::Time 0.66;
+use Devel::Cover::Pod 0.66;
sub coverage { $_[0][0] }
sub information { $_[0][1] }
@@ -97,11 +97,11 @@ Huh?
=head1 VERSION
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
=head1 LICENCE
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
This software is free. It is licensed under the same terms as Perl itself.
@@ -1,4 +1,4 @@
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -10,9 +10,9 @@ package Devel::Cover::DB::File;
use strict;
use warnings;
-our $VERSION = "0.65";
+our $VERSION = "0.66";
-use Devel::Cover::Criterion 0.65;
+use Devel::Cover::Criterion 0.66;
sub calculate_summary
{
@@ -79,11 +79,11 @@ Huh?
=head1 VERSION
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
=head1 LICENCE
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
This software is free. It is licensed under the same terms as Perl itself.
@@ -1,4 +1,4 @@
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -16,7 +16,7 @@ use Storable;
use Devel::Cover::DB;
-our $VERSION = "0.65";
+our $VERSION = "0.66";
our $AUTOLOAD;
sub new
@@ -323,11 +323,11 @@ Huh?
=head1 VERSION
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
=head1 LICENCE
-Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
This software is free. It is licensed under the same terms as Perl itself.
@@ -1,4 +1,4 @@
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -10,11 +10,11 @@ package Devel::Cover::DB;
use strict;
use warnings;
-our $VERSION = "0.65";
+our $VERSION = "0.66";
-use Devel::Cover::Criterion 0.65;
-use Devel::Cover::DB::File 0.65;
-use Devel::Cover::DB::Structure 0.65;
+use Devel::Cover::Criterion 0.66;
+use Devel::Cover::DB::File 0.66;
+use Devel::Cover::DB::Structure 0.66;
use Carp;
use File::Path;
@@ -104,6 +104,9 @@ sub delete
$self->{db} = $db if ref $self;
croak "No db specified" unless length $db;
+ return $self unless -d $db;
+
+ # TODO - just delete the directory?
opendir DIR, $db or die "Can't opendir $db: $!";
my @files = map "$db/$_", map /(.*)/ && $1, grep !/^\.\.?/, readdir DIR;
closedir DIR or die "Can't closedir $db: $!";
@@ -160,7 +163,8 @@ sub validate_db
my $self = shift;
# Check validity of the db. It is valid if the $DB file is there, or if it
- # is not there but the db directory is empty.
+ # is not there but the db directory is empty, or if there is no db
+ # directory.
# die if the db is invalid.
# just warn for now
@@ -170,9 +174,16 @@ sub validate_db
$self
}
+sub exists
+{
+ my $self = shift;
+ -d $self->{db}
+}
+
sub is_valid
{
my $self = shift;
+ return 1 if !-e $self->{db};
return 1 if -e "$self->{db}/$DB";
opendir my $fh, $self->{db} or return 0;
for my $file (readdir $fh)
@@ -996,11 +1007,11 @@ Huh?
=head1 VERSION
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
=head1 LICENCE
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
This software is free. It is licensed under the same terms as Perl itself.
@@ -1,4 +1,4 @@
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -12,7 +12,7 @@ require 5.8.0; # My patches to B::Concise didn't get released till 5.8.0.
use strict;
use warnings;
-our $VERSION = "0.65";
+our $VERSION = "0.66";
use Devel::Cover qw( -ignore blib -ignore \\wB\\w );
use B::Concise qw( set_style add_callback );
@@ -112,11 +112,11 @@ Huh?
=head1 VERSION
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
=head1 LICENCE
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
This software is free. It is licensed under the same terms as Perl itself.
@@ -1,4 +1,4 @@
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -10,7 +10,7 @@ package Devel::Cover::Pod;
use strict;
use warnings;
-our $VERSION = "0.65";
+our $VERSION = "0.66";
use base "Devel::Cover::Criterion";
@@ -66,11 +66,11 @@ Huh?
=head1 VERSION
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
=head1 LICENCE
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
This software is free. It is licensed under the same terms as Perl itself.
@@ -1,4 +1,4 @@
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -18,9 +18,9 @@ package Devel::Cover::Report::Compilation;
use strict;
use warnings;
-our $VERSION = "0.65";
+our $VERSION = "0.66";
-use Devel::Cover::DB 0.65;
+use Devel::Cover::DB 0.66;
# TODO - uncoverable code?
@@ -169,11 +169,11 @@ Huh?
=head1 VERSION
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
=head1 LICENCE
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
This software is free. It is licensed under the same terms as Perl itself.
@@ -1,4 +1,4 @@
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -10,7 +10,7 @@ package Devel::Cover::Report::Html;
use strict;
use warnings;
-our $VERSION = "0.65";
+our $VERSION = "0.66";
use base "Devel::Cover::Report::Html_minimal";
@@ -46,11 +46,11 @@ Huh?
=head1 VERSION
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
=head1 LICENCE
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
This software is free. It is licensed under the same terms as Perl itself.
@@ -1,4 +1,4 @@
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -10,10 +10,10 @@ package Devel::Cover::Report::Html_basic;
use strict;
use warnings;
-our $VERSION = "0.65";
+our $VERSION = "0.66";
-use Devel::Cover::DB 0.65;
-use Devel::Cover::Web 0.65 "write_file";
+use Devel::Cover::DB 0.66;
+use Devel::Cover::Web 0.66 "write_file";
use Getopt::Long;
use Template 2.00;
@@ -448,7 +448,7 @@ package Devel::Cover::Report::Html_basic::Template::Provider;
use strict;
use warnings;
-our $VERSION = "0.65";
+our $VERSION = "0.66";
use base "Template::Provider";
@@ -468,8 +468,8 @@ $Templates{html} = <<'EOT';
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<!--
-This file was generated by Devel::Cover Version 0.65
-Devel::Cover is copyright 2001-2008, Paul Johnson (pjcj@cpan.org)
+This file was generated by Devel::Cover Version 0.66
+Devel::Cover is copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
Devel::Cover is free. It is licensed under the same terms as Perl itself.
The latest version of Devel::Cover should be available from my homepage:
http://www.pjcj.net
@@ -769,11 +769,11 @@ Huh?
=head1 VERSION
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
=head1 LICENCE
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
This software is free. It is licensed under the same terms as Perl itself.
@@ -4,10 +4,10 @@ use strict;
use warnings;
use CGI;
use Getopt::Long;
-use Devel::Cover::DB 0.65;
-use Devel::Cover::Truth_Table 0.65;
+use Devel::Cover::DB 0.66;
+use Devel::Cover::Truth_Table 0.66;
-our $VERSION = "0.65";
+our $VERSION = "0.66";
#-------------------------------------------------------------------------------
# Subroutine : get_coverage_for_line
@@ -261,8 +261,8 @@ sub print_html_header {
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<!--
-This file was generated by Devel::Cover Version 0.65
-Devel::Cover is copyright 2001-2006, Paul Johnson (pjcj\@cpan.org)
+This file was generated by Devel::Cover Version 0.66
+Devel::Cover is copyright 2001-2010, Paul Johnson (pjcj\@cpan.org)
Devel::Cover is free. It is licensed under the same terms as Perl itself.
The latest version of Devel::Cover should be available from my homepage:
http://www.pjcj.net
@@ -776,11 +776,11 @@ Devel::Cover
=head1 VERSION
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
=head1 LICENCE
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
This software is free. It is licensed under the same terms as Perl itself.
@@ -2,10 +2,10 @@ package Devel::Cover::Report::Html_subtle;
use strict;
use warnings;
-our $VERSION = "0.65";
+our $VERSION = "0.66";
-use Devel::Cover::DB 0.65;
-use Devel::Cover::Truth_Table 0.65;
+use Devel::Cover::DB 0.66;
+use Devel::Cover::Truth_Table 0.66;
use Template 2.00;
use CGI;
@@ -386,7 +386,7 @@ package Devel::Cover::Report::Html_subtle::Template::Provider;
use strict;
use warnings;
-our $VERSION = "0.65";
+our $VERSION = "0.66";
use base "Template::Provider";
@@ -404,8 +404,8 @@ sub fetch {
$Templates{html} = <<'EOT';
<?xml version="1.0" encoding="utf-8"?>
<!--
-This file was generated by Devel::Cover Version 0.65
-Devel::Cover is copyright 2001-2006, Paul Johnson (pjcj\@cpan.org)
+This file was generated by Devel::Cover Version 0.66
+Devel::Cover is copyright 2001-2010, Paul Johnson (pjcj\@cpan.org)
Devel::Cover is free. It is licensed under the same terms as Perl itself.
The latest version of Devel::Cover should be available from my homepage:
http://www.pjcj.net
@@ -728,11 +728,11 @@ Huh?
=head1 VERSION
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
=head1 LICENCE
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
This software is free. It is licensed under the same terms as Perl itself.
@@ -1,4 +1,4 @@
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -10,9 +10,9 @@ package Devel::Cover::Report::Sort;
use strict;
use warnings;
-our $VERSION = "0.65";
+our $VERSION = "0.66";
-use Devel::Cover::DB 0.65;
+use Devel::Cover::DB 0.66;
sub print_sort
{
@@ -95,11 +95,11 @@ Huh?
=head1 VERSION
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
=head1 LICENCE
-Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
This software is free. It is licensed under the same terms as Perl itself.
@@ -1,4 +1,4 @@
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -10,9 +10,9 @@ package Devel::Cover::Report::Text;
use strict;
use warnings;
-our $VERSION = "0.65";
+our $VERSION = "0.66";
-use Devel::Cover::DB 0.65;
+use Devel::Cover::DB 0.66;
sub print_runs
{
@@ -313,11 +313,11 @@ Huh?
=head1 VERSION
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
=head1 LICENCE
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
This software is free. It is licensed under the same terms as Perl itself.
@@ -2,9 +2,9 @@ package Devel::Cover::Report::Text2;
use strict;
use warnings;
-our $VERSION = "0.65";
+our $VERSION = "0.66";
-use Devel::Cover::DB 0.65;
+use Devel::Cover::DB 0.66;
use Devel::Cover::Truth_Table;
my %format = (
@@ -191,11 +191,11 @@ Huh?
=head1 VERSION
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
=head1 LICENCE
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
This software is free. It is licensed under the same terms as Perl itself.
@@ -1,4 +1,4 @@
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -10,7 +10,7 @@ package Devel::Cover::Statement;
use strict;
use warnings;
-our $VERSION = "0.65";
+our $VERSION = "0.66";
use base "Devel::Cover::Criterion";
@@ -51,11 +51,11 @@ Huh?
=head1 VERSION
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
=head1 LICENCE
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
This software is free. It is licensed under the same terms as Perl itself.
@@ -1,4 +1,4 @@
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -10,7 +10,7 @@ package Devel::Cover::Subroutine;
use strict;
use warnings;
-our $VERSION = "0.65";
+our $VERSION = "0.66";
use base "Devel::Cover::Criterion";
@@ -50,11 +50,11 @@ Huh?
=head1 VERSION
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
=head1 LICENCE
-Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
This software is free. It is licensed under the same terms as Perl itself.
@@ -1,4 +1,4 @@
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -10,14 +10,14 @@ package Devel::Cover::Test;
use strict;
use warnings;
-our $VERSION = "0.65";
+our $VERSION = "0.66";
use Carp;
use File::Spec;
use Test;
-use Devel::Cover::Inc 0.65;
+use Devel::Cover::Inc 0.66;
my $Test;
@@ -348,6 +348,7 @@ sub create_gold
next if $l =~ /^Devel::Cover: merging run/;
$l =~ s/^($_: ).*$/$1.../
for "Run", "Perl version", "OS", "Start", "Finish";
+ $l =~ s/^(Reading database from ).*$/$1.../;
print STDERR $l if $debug;
print G $l;
$ng .= $l;
@@ -355,13 +356,17 @@ sub create_gold
close T or die "Cannot close $cover_com: $!";
close G or die "Cannot close $new_gold: $!";
+ print STDERR "gv is $gv and this is $]\n" if $debug;
+ print STDERR "gold is $gold and new_gold is $new_gold\n" if $debug;
unless ($gv eq "5.0" || $gv eq $])
{
open G, "$gold" or die "Cannot open $gold: $!";
my $g = do { local $/; <G> };
close G or die "Cannot close $gold: $!";
- # print STDERR "checking $new_gold against $gold\n";
+ print STDERR "checking $new_gold against $gold\n" if $debug;
+ # print "--[$ng]--\n";
+ # print "--[$g]--\n";
if ($ng eq $g)
{
print "Output from $new_gold matches $gold\n";
@@ -1,4 +1,4 @@
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -10,7 +10,7 @@ package Devel::Cover::Time;
use strict;
use warnings;
-our $VERSION = "0.65";
+our $VERSION = "0.66";
use base "Devel::Cover::Criterion";
@@ -71,11 +71,11 @@ Huh?
=head1 VERSION
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
=head1 LICENCE
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
This software is free. It is licensed under the same terms as Perl itself.
@@ -180,7 +180,7 @@ sub error {
package Devel::Cover::Truth_Table;
use warnings;
use strict;
-our $VERSION = "0.65";
+our $VERSION = "0.66";
#-------------------------------------------------------------------------------
# Subroutine : new()
@@ -567,7 +567,7 @@ None that I'm aware of...
=head1 VERSION
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
=head1 LICENSE
@@ -163,11 +163,11 @@ basis for future research.
=head1 VERSION
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
=head1 LICENCE
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
This software is free. It is licensed under the same terms as Perl itself.
@@ -1,4 +1,4 @@
-# Copyright 2007-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2007-2010, Paul Johnson (pjcj@cpan.org)
# except where otherwise noted.
# This software is free. It is licensed under the same terms as Perl itself,
@@ -12,7 +12,7 @@ package Devel::Cover::Web;
use strict;
use warnings;
-our $VERSION = "0.65";
+our $VERSION = "0.66";
use Exporter;
@@ -934,11 +934,11 @@ Huh?
=head1 VERSION
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
=head1 LICENCE
-Copyright 2007-2009, Paul Johnson (pjcj@cpan.org) except where otherwise noted.
+Copyright 2007-2010, Paul Johnson (pjcj@cpan.org) except where otherwise noted.
This software is free. It is licensed under the same terms as Perl itself,
except where otherwise noted.
@@ -1,4 +1,4 @@
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -10,13 +10,13 @@ package Devel::Cover;
use strict;
use warnings;
-our $VERSION = "0.65";
+our $VERSION = "0.66";
use DynaLoader ();
our @ISA = "DynaLoader";
-use Devel::Cover::DB 0.65;
-use Devel::Cover::Inc 0.65;
+use Devel::Cover::DB 0.66;
+use Devel::Cover::Inc 0.66;
use B qw( class ppname main_cv main_start main_root walksymtable OPf_KIDS );
use B::Debug;
@@ -84,6 +84,7 @@ use vars '$File', # Last filename we saw. (localised)
# over conditions. (localised)
'%Files', # Whether we are interested in files.
# Used in runops function.
+ '$Replace_ops',
'$Silent'; # Output nothing. Can be used anywhere.
BEGIN
@@ -249,6 +250,8 @@ EOM
POSIX::_exit(1);
}
+$Replace_ops = 1;
+
sub import
{
return if $Initialised;
@@ -256,7 +259,7 @@ sub import
my $class = shift;
my @o = (@_, split ",", $ENV{DEVEL_COVER_OPTIONS} || "");
- # print STDERR __PACKAGE__, ": Parsing options from [@_]\n";
+ # print STDERR __PACKAGE__, ": Parsing options from [@o]\n";
my $blib = -d "blib";
@Inc = () if "@o" =~ /-inc /;
@@ -265,24 +268,27 @@ sub import
while (@o)
{
local $_ = shift @o;
- /^-silent/ && do { $Silent = shift @o; next };
- /^-dir/ && do { $Dir = shift @o; next };
- /^-db/ && do { $DB = shift @o; next };
- /^-merge/ && do { $Merge = shift @o; next };
- /^-summary/ && do { $Summary = shift @o; next };
- /^-blib/ && do { $blib = shift @o; next };
- /^-subs_only/ && do { $Subs_only = shift @o; next };
- /^-coverage/ &&
+ /^-silent/ && do { $Silent = shift @o; next };
+ /^-dir/ && do { $Dir = shift @o; next };
+ /^-db/ && do { $DB = shift @o; next };
+ /^-merge/ && do { $Merge = shift @o; next };
+ /^-summary/ && do { $Summary = shift @o; next };
+ /^-blib/ && do { $blib = shift @o; next };
+ /^-subs_only/ && do { $Subs_only = shift @o; next };
+ /^-replace_ops/ && do { $Replace_ops = shift @o; next };
+ /^-coverage/ &&
do { $Coverage{+shift @o} = 1 while @o && $o[0] !~ /^[-+]/; next };
- /^[-+]ignore/ &&
+ /^[-+]ignore/ &&
do { push @Ignore, shift @o while @o && $o[0] !~ /^[-+]/; next };
- /^[-+]inc/ &&
+ /^[-+]inc/ &&
do { push @Inc, shift @o while @o && $o[0] !~ /^[-+]/; next };
- /^[-+]select/ &&
+ /^[-+]select/ &&
do { push @Select, shift @o while @o && $o[0] !~ /^[-+]/; next };
warn __PACKAGE__ . ": Unknown option $_ ignored\n";
}
+ bootstrap Devel::Cover $VERSION;
+
if (defined $Dir)
{
# Die tainting.
@@ -298,9 +304,7 @@ sub import
unless (-d $DB)
{
- # Nasty hack to keep 5.6.1 happy.
mkdir $DB, 0700 or croak "Can't mkdir $DB: $!\n";
- chmod 0700, $DB or croak "Can't chmod $DB: $!\n";
}
$DB = $1 if Cwd::abs_path($DB) =~ /(.*)/;
Devel::Cover::DB->delete($DB) unless $Merge;
@@ -681,7 +685,6 @@ sub report
unless (-d $DB)
{
mkdir $DB, 0700 or croak "Can't mkdir $DB: $!\n";
- chmod 0700, $DB or croak "Can't chmod $DB: $!\n";
}
$DB .= "/$run";
@@ -1164,8 +1167,6 @@ sub get_cover
$de
}
-bootstrap Devel::Cover $VERSION;
-
1
__END__
@@ -1301,8 +1302,9 @@ if the tests fail and you would like nice output telling you why.
-merge val - Merge databases, for multiple test benches (default on).
-select RE - Set REs of files to select (default none).
+select RE - Append to REs of files to select.
- -silent val - Don't print informational messages (default off)
- -subs_only val - Only cover code in subroutine bodies (default off)
+ -silent val - Don't print informational messages (default off).
+ -subs_only val - Only cover code in subroutine bodies (default off).
+ -replace_ops val - Use op replacing rather than runops (default on).
-summary val - Print summary information iff val is true (default on).
=head2 More on Coverage Options
@@ -1440,11 +1442,11 @@ See the BUGS file. And the TODO file.
=head1 VERSION
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
=head1 LICENCE
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
This software is free. It is licensed under the same terms as Perl itself.
@@ -0,0 +1,37 @@
+#!/usr/bin/perl
+
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
+
+# This software is free. It is licensed under the same terms as Perl itself.
+
+# The latest version of this software should be available from my homepage:
+# http://www.pjcj.net
+
+use strict;
+use warnings;
+
+my $Command =
+{
+ strip_criterion => sub
+ {
+ my ($command, $criterion, $file) = @_;
+ my $t;
+ local ($^I, @ARGV) = (".bak", $file);
+ while (<>)
+ {
+ $t = index $_, "$criterion code" if !defined $t || $t < 0;
+ substr $_, $t, 7, ""
+ if /^line err stmt/ .. /^--------/ and $t > -1 and length > $t;
+ print;
+ }
+ },
+};
+
+sub main
+{
+ my ($command) = @ARGV;
+ die "No such command: $command" unless $Command->{$command};
+ $Command->{$command}->(@ARGV)
+}
+
+main
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/alias
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -19,7 +19,7 @@ Finish: ...
tests/Alias1.pm
line err stmt bran cond sub code
-1 # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+1 # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
2
3 # This software is free. It is licensed under the same terms as Perl itself.
4
@@ -67,7 +67,7 @@ tests/alias1
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -19,7 +19,7 @@ Finish: ...
tests/Alias1.pm
line err stmt bran cond sub code
-1 # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+1 # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
2
3 # This software is free. It is licensed under the same terms as Perl itself.
4
@@ -76,7 +76,7 @@ tests/alias1
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/branch_return_sub
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/branch_return_sub
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
Devel::Cover: Deleting old coverage for changed file tests/change
@@ -27,7 +27,7 @@ tests/change
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/cond_and
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/cond_and
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/cond_and
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/cond_branch
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/cond_branch
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/cond_branch
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -0,0 +1,489 @@
+Reading database from ...
+
+
+------------------------------------------ ------ ------ ------ ------ ------
+File stmt bran cond sub total
+------------------------------------------ ------ ------ ------ ------ ------
+tests/cond_branch 89.4 79.3 19.1 100.0 73.7
+Total 89.4 79.3 19.1 100.0 73.7
+------------------------------------------ ------ ------ ------ ------ ------
+
+
+Run: ...
+Perl version: ...
+OS: ...
+Start: ...
+Finish: ...
+
+tests/cond_branch
+
+line err stmt bran cond sub code
+1 #!/usr/bin/perl
+2
+3 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
+4
+5 # This software is free. It is licensed under the same terms as Perl itself.
+6
+7 # The latest version of this software should be available from my homepage:
+8 # http://www.pjcj.net
+9
+10 1 1 use strict;
+ 1
+ 1
+11 1 1 use warnings;
+ 1
+ 1
+12
+13 1 my @x;
+14
+15 1 for my $y (0, 0)
+16 {
+17 2 for my $z (1, 0)
+18 {
+19 *** 4 50 33 if ($y && $z)
+20 {
+21 *** 0 $x[1]++;
+22 }
+23 else
+24 {
+25 4 $x[2]++;
+26 }
+27 *** 4 100 66 if ($y || $z)
+28 {
+29 2 $x[3]++;
+30 }
+31 else
+32 {
+33 2 $x[4]++;
+34 }
+35
+36 *** 4 50 $y && $x[5]++;
+37 *** 4 50 $x[5]++ if $y;
+38
+39 4 100 $z && $x[6]++;
+40 4 100 $x[6]++ if $z;
+41
+42 *** 4 50 $y || $x[7]++;
+43 *** 4 50 $x[7]++ unless $y;
+44
+45 4 100 $z || $x[8]++;
+46 4 100 $x[8]++ unless $z;
+47
+48 *** 4 50 $y ? $x[9]++ : $x[10]++;
+49 4 100 $z ? $x[11]++ : $x[12]++;
+50
+51 *** 4 50 33 if ($y)
+ *** 50 66
+ 100
+52 {
+53 *** 0 $x[13]++;
+54 }
+55 elsif ($y && $z)
+56 {
+57 *** 0 $x[14]++;
+58 }
+59 elsif ($y || $z)
+60 {
+61 2 $x[15]++;
+62 }
+63 else
+64 {
+65 2 $x[16]++;
+66 }
+67
+68 *** 4 50 33 $y && $z && $x[17]++; $y && $z && $x[18]++;
+ *** 4 50 33
+69 }
+70 }
+71
+72 1 for my $y (0, 1)
+73 {
+74 2 100 $y || next;
+75 1 $x[18]++;
+76 }
+77
+78 1 for my $y (1, 0)
+79 {
+80 2 100 $y || next;
+81 1 $x[19]++;
+82 }
+83
+84 1 for my $y (0, 1)
+85 {
+86 2 100 $y && next;
+87 1 $x[20]++;
+88 }
+89
+90 1 for my $y (1, 0)
+91 {
+92 2 100 $y && next;
+93 1 $x[21]++;
+94 }
+95
+96 1 for my $y (0, 1)
+97 {
+98 1 1 no warnings "void";
+ 1
+ 1
+99 *** 2 0 my $w = $y xor next;
+100 *** 0 $x[22]++;
+101 }
+102
+103 1 for my $y (1, 0)
+104 {
+105 1 1 no warnings "void";
+ 1
+ 1
+106 *** 2 0 my $w = $y xor next;
+107 *** 0 $x[23]++;
+108 }
+109
+110 1 for my $y (0, 1)
+111 {
+112 *** 1 50 $y || last;
+113 *** 0 $x[24]++;
+114 }
+115
+116 1 for my $y (1, 0)
+117 {
+118 2 100 $y || last;
+119 1 $x[25]++;
+120 }
+121
+122 1 for my $y (0, 1)
+123 {
+124 2 100 $y && last;
+125 1 $x[26]++;
+126 }
+127
+128 1 for my $y (1, 0)
+129 {
+130 *** 1 50 $y && last;
+131 *** 0 $x[27]++;
+132 }
+133
+134 1 for my $y (0, 1)
+135 {
+136 1 1 no warnings "void";
+ 1
+ 1
+137 *** 1 0 my $w = $y xor last;
+138 *** 0 $x[28]++;
+139 }
+140
+141 1 for my $y (1, 0)
+142 {
+143 1 1 no warnings "void";
+ 1
+ 1
+144 *** 1 0 my $w = $y xor last;
+145 *** 0 $x[29]++;
+146 }
+147
+148 1 for my $y (0, 1)
+149 {
+150 *** 1 50 $y || goto G1;
+151 *** 0 $x[30]++;
+152 }
+153 G1:
+154
+155 1 for my $y (1, 0)
+156 {
+157 2 100 $y || goto G2;
+158 1 $x[31]++;
+159 }
+160 G2:
+161
+162 1 for my $y (0, 1)
+163 {
+164 2 100 $y && goto G3;
+165 1 $x[32]++;
+166 }
+167 G3:
+168
+169 1 for my $y (1, 0)
+170 {
+171 *** 1 50 $y && goto G4;
+172 *** 0 $x[33]++;
+173 }
+174 G4:
+175
+176 1 for my $y (0, 1)
+177 {
+178 1 1 no warnings "void";
+ 1
+ 1
+179 *** 1 0 my $w = $y xor goto G5;
+180 *** 0 $x[34]++;
+181 }
+182 G5:
+183
+184 1 for my $y (1, 0)
+185 {
+186 1 1 no warnings "void";
+ 1
+ 1
+187 *** 1 0 my $w = $y xor goto G6;
+188 *** 0 $x[35]++;
+189 }
+190 G6:
+191
+192 1 my $z;
+193
+194 1 $z = -1;
+195 1 for my $y (0, 1)
+196 {
+197 3 $z++;
+198 3 100 last if $z > 1;
+199 2 100 $z || redo;
+200 1 $x[36]++;
+201 }
+202
+203 1 $z = -1;
+204 1 for my $y (1, 0)
+205 {
+206 3 $z++;
+207 3 100 last if $z > 1;
+208 2 100 !$z || redo;
+209 1 $x[37]++;
+210 }
+211
+212 1 $z = -1;
+213 1 for my $y (0, 1)
+214 {
+215 3 $z++;
+216 3 100 last if $z > 1;
+217 2 100 $z && redo;
+218 1 $x[38]++;
+219 }
+220
+221 1 $z = -1;
+222 1 for my $y (1, 0)
+223 {
+224 3 $z++;
+225 3 100 last if $z > 1;
+226 2 100 !$z && redo;
+227 1 $x[39]++;
+228 }
+229
+230 1 $z = -1;
+231 1 for my $y (0, 1)
+232 {
+233 3 $z++;
+234 3 100 last if $z > 1;
+235 1 1 no warnings "void";
+ 1
+ 1
+236 *** 2 0 my $w = $z xor redo;
+237 *** 0 $x[40]++;
+238 }
+239
+240 1 $z = -1;
+241 1 for my $y (1, 0)
+242 {
+243 3 $z++;
+244 3 100 last if $z > 1;
+245 1 1 no warnings "void";
+ 1
+ 1
+246 *** 2 0 my $w = !$z xor redo;
+247 *** 0 $x[41]++;
+248 }
+249
+250 1 my $s;
+251 $s = sub
+252 {
+253 4 100 4 shift || return;
+254 2 $x[42]++;
+255 1 };
+256
+257 1 for my $y (0, 1)
+258 {
+259 2 $s->($y)
+260 }
+261
+262 1 for my $y (1, 0)
+263 {
+264 2 $s->($y)
+265 }
+266
+267 $s = sub
+268 {
+269 4 100 4 shift && return;
+270 2 $x[43]++;
+271 1 };
+272
+273 1 for my $y (0, 1)
+274 {
+275 2 $s->($y)
+276 }
+277
+278 1 for my $y (1, 0)
+279 {
+280 2 $s->($y)
+281 }
+282
+283 $s = sub
+284 {
+285 1 1 no warnings "void";
+ 1
+ 1
+286 *** 4 0 4 shift xor return;
+287 *** 0 $x[44]++;
+288 1 };
+289
+290 1 for my $y (0, 1)
+291 {
+292 2 $s->($y)
+293 }
+294
+295 1 for my $y (1, 0)
+296 {
+297 2 $s->($y)
+298 }
+299
+300 1 my ($a, $b) = (0, 1);
+301
+302 *** 1 50 33 if ($a && $b)
+ *** 50 33
+ *** 50 50
+303 {
+304 *** 0 print "path 1\n";
+305 }
+306 elsif (!$a && !$b)
+307 {
+308 *** 0 print "path 2\n";
+309 }
+310 elsif ($b || 0)
+311 {
+312 1 print "path 3\n";
+313 *** 1 50 33 if (!$b || $a)
+ *** 50 33
+314 {
+315 *** 0 print "path 4\n";
+316 }
+317 elsif (!$a && $b)
+318 {
+319 1 print "path 5\n";
+320 }
+321 }
+
+
+Branches
+--------
+
+line err % true false branch
+----- --- ------ ------ ------ ------
+19 *** 50 0 4 if ($y and $z) { }
+27 100 2 2 if ($y or $z) { }
+36 *** 50 0 4 if $y
+37 *** 50 0 4 if $y
+39 100 2 2 if $z
+40 100 2 2 if $z
+42 *** 50 4 0 unless $y
+43 *** 50 4 0 unless $y
+45 100 2 2 unless $z
+46 100 2 2 unless $z
+48 *** 50 0 4 $y ? :
+49 100 2 2 $z ? :
+51 *** 50 0 4 if ($y) { }
+ *** 50 0 4 elsif ($y and $z) { }
+ 100 2 2 elsif ($y or $z) { }
+68 *** 50 0 4 if $y and $z
+ *** 50 0 4 if $y and $z
+74 100 1 1 unless $y
+80 100 1 1 unless $y
+86 100 1 1 if $y
+92 100 1 1 if $y
+112 *** 50 1 0 unless $y
+118 100 1 1 unless $y
+124 100 1 1 if $y
+130 *** 50 1 0 if $y
+150 *** 50 1 0 unless $y
+157 100 1 1 unless $y
+164 100 1 1 if $y
+171 *** 50 1 0 if $y
+198 100 1 2 if $z > 1
+199 100 1 1 unless $z
+207 100 1 2 if $z > 1
+208 100 1 1 if $z
+216 100 1 2 if $z > 1
+217 100 1 1 if $z
+225 100 1 2 if $z > 1
+226 100 1 1 unless $z
+234 100 1 2 if $z > 1
+244 100 1 2 if $z > 1
+253 100 2 2 unless shift @_
+269 100 2 2 if shift @_
+302 *** 50 0 1 if ($a and $b) { }
+ *** 50 0 1 elsif (not $a || $b) { }
+ *** 50 1 0 elsif ($b or 0) { }
+313 *** 50 0 1 if (not $b or $a) { }
+ *** 50 1 0 elsif (not $a and $b) { }
+
+
+Conditions
+----------
+
+and 3 conditions
+
+line err % !l l&&!r l&&r expr
+----- --- ------ ------ ------ ------ ----
+19 *** 33 4 0 0 $y and $z
+51 *** 33 4 0 0 $y and $z
+68 *** 33 4 0 0 $y and $z
+ *** 33 4 0 0 $y and $z
+302 *** 33 1 0 0 $a and $b
+313 *** 33 0 0 1 not $a and $b
+
+or 2 conditions
+
+line err % l !l expr
+----- --- ------ ------ ------ ----
+302 *** 50 1 0 $b or 0
+
+or 3 conditions
+
+line err % l !l&&r !l&&!r expr
+----- --- ------ ------ ------ ------ ----
+27 *** 66 0 2 2 $y or $z
+51 *** 66 0 2 2 $y or $z
+302 *** 33 0 1 0 $a || $b
+313 *** 33 0 0 1 not $b or $a
+
+xor 4 conditions
+
+line err % l&&r l&&!r !l&&r !l&&!r expr
+----- --- ------ ------ ------ ------ ------ ----
+99 *** 0 0 0 0 0 my $w = $y xor next
+106 *** 0 0 0 0 0 my $w = $y xor next
+137 *** 0 0 0 0 0 my $w = $y xor last
+144 *** 0 0 0 0 0 my $w = $y xor last
+179 *** 0 0 0 0 0 my $w = $y xor goto G5
+187 *** 0 0 0 0 0 my $w = $y xor goto G6
+236 *** 0 0 0 0 0 my $w = $z xor redo
+246 *** 0 0 0 0 0 my $w = !$z xor redo
+286 *** 0 0 0 0 0 shift @_ xor return
+
+
+Covered Subroutines
+-------------------
+
+Subroutine Count Location
+---------- ----- ---------------------
+BEGIN 1 tests/cond_branch:10
+BEGIN 1 tests/cond_branch:105
+BEGIN 1 tests/cond_branch:11
+BEGIN 1 tests/cond_branch:136
+BEGIN 1 tests/cond_branch:143
+BEGIN 1 tests/cond_branch:178
+BEGIN 1 tests/cond_branch:186
+BEGIN 1 tests/cond_branch:235
+BEGIN 1 tests/cond_branch:245
+BEGIN 1 tests/cond_branch:285
+BEGIN 1 tests/cond_branch:98
+__ANON__ 4 tests/cond_branch:253
+__ANON__ 4 tests/cond_branch:269
+__ANON__ 4 tests/cond_branch:286
+
+
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,94 +20,97 @@ tests/cond_or
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
7 # The latest version of this software should be available from my homepage:
8 # http://www.pjcj.net
9
-10 use strict;
-11 use warnings;
+10 # __COVER__ skip_test $] < 5.008 || $^O eq "cygwin"
+11 # __COVER__ skip_reason Busted on 5.6 and cygwin
12
-13 1 my @x;
-14
-15 1 my $y = 1;
-16 1 my $z = 0;
-17 1 $::foo = 17;
-18
-19 *** 1 50 if ($] >= 5.009)
-20 {
-21 *** 0 $ENV{PATH} = "/bin";
-22 *** 0 system "pwd";
-23 use lib "tests";
-24 *** 0 my $file = "cond_or.pl";
-25 *** 0 0 unless (my $return = do $file)
-26 {
-27 *** 0 0 die "couldn't parse $file: $@" if $@;
-28 *** 0 0 die "couldn't do $file: $!" unless defined $return;
-29 *** 0 0 die "couldn't run $file" unless $return;
-30 }
-31 }
-32
-33 1 for (0 .. 10)
+13 use strict;
+14 use warnings;
+15
+16 1 my @x;
+17
+18 1 my $y = 1;
+19 1 my $z = 0;
+20 1 $::foo = 17;
+21
+22 *** 1 50 if ($] >= 5.009)
+23 {
+24 *** 0 $ENV{PATH} = "/bin";
+25 *** 0 system "pwd";
+26 use lib "tests";
+27 *** 0 my $file = "cond_or.pl";
+28 *** 0 0 unless (my $return = do $file)
+29 {
+30 *** 0 0 die "couldn't parse $file: $@" if $@;
+31 *** 0 0 die "couldn't do $file: $!" unless defined $return;
+32 *** 0 0 die "couldn't run $file" unless $return;
+33 }
+34 }
+35
+36 1 for (0 .. 10)
11
-34 {
-35 *** 11 50 $y ||
-36 $x[1]++;
-37
-38 *** 11 50 33 $y ||
-39 $x[0]++ ||
-40 $x[1]++;
-41
-42 *** 11 50 $x[2]++
-43 unless $z;
+37 {
+38 *** 11 50 $y ||
+39 $x[1]++;
+40
+41 *** 11 50 33 $y ||
+42 $x[0]++ ||
+43 $x[1]++;
44
-45 11 for (0 .. 2)
+45 *** 11 50 $x[2]++
+46 unless $z;
+47
+48 11 for (0 .. 2)
33
-46 {
-47 33 $x[3]++;
-48 }
-49
-50 *** 11 50 if ($z)
-51 {
-52 *** 0 $x[4]++;
-53 }
-54 else
-55 {
-56 11 $x[5]++;
-57 }
-58
-59 *** 11 33 my $p = $y || $z;
-60 *** 11 33 my $q = $z || $y;
-61 11 100 my $r = $_ || "qqq";
-62 11 100 my $s = $_ || [];
-63 11 my $t = $y | $z;
-64 *** 11 50 my $u = $y || 0;
-65 *** 11 50 my $v = $y || undef;
-66 *** 11 50 my $w = $z || 0;
-67
-68 *** 11 50 $p ||= $y;
-69 *** 11 50 $p ||= $z;
-70 11 100 $x[ 6] ||= $y;
-71 *** 11 50 $x[ 7] ||= $z;
-72 11 100 $x[ 8] ||= 1;
-73 11 100 $x[ 9] ||= {};
-74 11 100 $x[10] ||= \"foo";
-75 11 100 $x[11] ||= \$y;
-76 11 100 $x[12] ||= \*STDIO;
-77 *** 11 100 0 $x[13] ||= sub { 1 };
+49 {
+50 33 $x[3]++;
+51 }
+52
+53 *** 11 50 if ($z)
+54 {
+55 *** 0 $x[4]++;
+56 }
+57 else
+58 {
+59 11 $x[5]++;
+60 }
+61
+62 *** 11 33 my $p = $y || $z;
+63 *** 11 33 my $q = $z || $y;
+64 11 100 my $r = $_ || "qqq";
+65 11 100 my $s = $_ || [];
+66 11 my $t = $y | $z;
+67 *** 11 50 my $u = $y || 0;
+68 *** 11 50 my $v = $y || undef;
+69 *** 11 50 my $w = $z || 0;
+70
+71 *** 11 50 $p ||= $y;
+72 *** 11 50 $p ||= $z;
+73 11 100 $x[ 6] ||= $y;
+74 *** 11 50 $x[ 7] ||= $z;
+75 11 100 $x[ 8] ||= 1;
+76 11 100 $x[ 9] ||= {};
+77 11 100 $x[10] ||= \"foo";
+78 11 100 $x[11] ||= \$y;
+79 11 100 $x[12] ||= \*STDIO;
+80 *** 11 100 0 $x[13] ||= sub { 1 };
*** 0
-78 11 100 $x[14] ||= *::foo{SCALAR};
-79 *** 11 50 $x[15] ||= *STDIO{IO};
-80 11 100 $x[16] ||= bless {}, "XXX";
-81 11 100 $x[17] ||= <<"EOD";
-82 blah
-83 EOD
-84 *** 11 50 cond_dor(\@x) if exists &cond_dor;
-85 }
-86
-87 # print join(", ", @x), "\n";
+81 11 100 $x[14] ||= *::foo{SCALAR};
+82 *** 11 50 $x[15] ||= *STDIO{IO};
+83 11 100 $x[16] ||= bless {}, "XXX";
+84 11 100 $x[17] ||= <<"EOD";
+85 blah
+86 EOD
+87 *** 11 50 cond_dor(\@x) if exists &cond_dor;
+88 }
+89
+90 # print join(", ", @x), "\n";
Branches
@@ -115,16 +118,16 @@ Branches
line err % true false branch
----- --- ------ ------ ------ ------
-19 *** 50 0 1 if ($] >= 5.009)
-25 *** 0 0 0 unless (my $return = do $file)
-27 *** 0 0 0 if $@
-28 *** 0 0 0 unless defined $return
-29 *** 0 0 0 unless $return
-35 *** 50 0 11 unless $y
-38 *** 50 0 11 unless $y or $x[0]++
-42 *** 50 11 0 unless $z
-50 *** 50 0 11 if ($z) { }
-84 *** 50 0 11 if exists ->{Deparse error: Can't locate object method "name" via package "B::NULL" (perhaps you forgot to load "B::NULL"?) at /usr/local/pkg/perl-5.6.1/lib/5.6.1/i686-linux/B/Deparse.pm line 409.
+22 *** 50 0 1 if ($] >= 5.009)
+28 *** 0 0 0 unless (my $return = do $file)
+30 *** 0 0 0 if $@
+31 *** 0 0 0 unless defined $return
+32 *** 0 0 0 unless $return
+38 *** 50 0 11 unless $y
+41 *** 50 0 11 unless $y or $x[0]++
+45 *** 50 11 0 unless $z
+53 *** 50 0 11 if ($z) { }
+87 *** 50 0 11 if exists ->{Deparse error: Can't locate object method "name" via package "B::NULL" (perhaps you forgot to load "B::NULL"?) at /usr/local/pkg/perl/default/perl-5.6.1/lib/5.6.1/i686-linux/B/Deparse.pm line 409.
}
@@ -135,36 +138,36 @@ or 2 conditions
line err % l !l expr
----- --- ------ ------ ------ ----
-61 100 10 1 $_ || 'qqq'
-62 100 10 1 $_ || []
-64 *** 50 11 0 $y || 0
-65 *** 50 11 0 $y || undef
-66 *** 50 0 11 $z || 0
-68 *** 50 11 0 $p ||= $y
-69 *** 50 11 0 $p ||= $z
-70 100 10 1 $x[6] ||= $y
-71 *** 50 0 11 $x[7] ||= $z
-72 100 10 1 $x[8] ||= 1
-73 100 10 1 $x[9] ||= {}
-74 100 10 1 $x[10] ||= \('foo')
-75 100 10 1 $x[11] ||= \$y
-76 100 10 1 $x[12] ||= \*STDIO
-77 100 10 1 $x[13] ||= sub {
+64 100 10 1 $_ || 'qqq'
+65 100 10 1 $_ || []
+67 *** 50 11 0 $y || 0
+68 *** 50 11 0 $y || undef
+69 *** 50 0 11 $z || 0
+71 *** 50 11 0 $p ||= $y
+72 *** 50 11 0 $p ||= $z
+73 100 10 1 $x[6] ||= $y
+74 *** 50 0 11 $x[7] ||= $z
+75 100 10 1 $x[8] ||= 1
+76 100 10 1 $x[9] ||= {}
+77 100 10 1 $x[10] ||= \('foo')
+78 100 10 1 $x[11] ||= \$y
+79 100 10 1 $x[12] ||= \*STDIO
+80 100 10 1 $x[13] ||= sub {
1;
}
-78 100 10 1 $x[14] ||= *foo{'SCALAR'}
-79 *** 50 0 11 $x[15] ||= *STDIO{'IO'}
-80 100 10 1 $x[16] ||= bless({}, 'XXX')
-81 100 10 1 $x[17] ||= "blah\n"
+81 100 10 1 $x[14] ||= *foo{'SCALAR'}
+82 *** 50 0 11 $x[15] ||= *STDIO{'IO'}
+83 100 10 1 $x[16] ||= bless({}, 'XXX')
+84 100 10 1 $x[17] ||= "blah\n"
or 3 conditions
line err % l !l&&r !l&&!r expr
----- --- ------ ------ ------ ------ ----
-38 *** 33 11 0 0 $y or $x[0]++
-59 *** 33 11 0 0 $y || $z
-60 *** 33 0 11 0 $z || $y
+41 *** 33 11 0 0 $y or $x[0]++
+62 *** 33 11 0 0 $y || $z
+63 *** 33 0 11 0 $z || $y
Uncovered Subroutines
@@ -172,6 +175,6 @@ Uncovered Subroutines
Subroutine Count Location
---------- ----- ----------------
-__ANON__ 0 tests/cond_or:77
+__ANON__ 0 tests/cond_or:80
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,94 +20,97 @@ tests/cond_or
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
7 # The latest version of this software should be available from my homepage:
8 # http://www.pjcj.net
9
-10 use strict;
-11 use warnings;
+10 # __COVER__ skip_test $] < 5.008 || $^O eq "cygwin"
+11 # __COVER__ skip_reason Busted on 5.6 and cygwin
12
-13 1 my @x;
-14
-15 1 my $y = 1;
-16 1 my $z = 0;
-17 1 $::foo = 17;
-18
-19 *** 1 50 if ($] >= 5.009)
-20 {
-21 *** 0 $ENV{PATH} = "/bin";
-22 *** 0 system "pwd";
-23 use lib "tests";
-24 *** 0 my $file = "cond_or.pl";
-25 *** 0 0 unless (my $return = do $file)
-26 {
-27 *** 0 0 die "couldn't parse $file: $@" if $@;
-28 *** 0 0 die "couldn't do $file: $!" unless defined $return;
-29 *** 0 0 die "couldn't run $file" unless $return;
-30 }
-31 }
-32
-33 1 for (0 .. 10)
+13 use strict;
+14 use warnings;
+15
+16 1 my @x;
+17
+18 1 my $y = 1;
+19 1 my $z = 0;
+20 1 $::foo = 17;
+21
+22 *** 1 50 if ($] >= 5.009)
+23 {
+24 *** 0 $ENV{PATH} = "/bin";
+25 *** 0 system "pwd";
+26 use lib "tests";
+27 *** 0 my $file = "cond_or.pl";
+28 *** 0 0 unless (my $return = do $file)
+29 {
+30 *** 0 0 die "couldn't parse $file: $@" if $@;
+31 *** 0 0 die "couldn't do $file: $!" unless defined $return;
+32 *** 0 0 die "couldn't run $file" unless $return;
+33 }
+34 }
+35
+36 1 for (0 .. 10)
11
-34 {
-35 *** 11 50 $y ||
-36 $x[1]++;
-37
-38 *** 11 50 33 $y ||
-39 $x[0]++ ||
-40 $x[1]++;
-41
-42 *** 11 50 $x[2]++
-43 unless $z;
+37 {
+38 *** 11 50 $y ||
+39 $x[1]++;
+40
+41 *** 11 50 33 $y ||
+42 $x[0]++ ||
+43 $x[1]++;
44
-45 11 for (0 .. 2)
+45 *** 11 50 $x[2]++
+46 unless $z;
+47
+48 11 for (0 .. 2)
33
-46 {
-47 33 $x[3]++;
-48 }
-49
-50 *** 11 50 if ($z)
-51 {
-52 *** 0 $x[4]++;
-53 }
-54 else
-55 {
-56 11 $x[5]++;
-57 }
-58
-59 *** 11 33 my $p = $y || $z;
-60 *** 11 33 my $q = $z || $y;
-61 11 100 my $r = $_ || "qqq";
-62 11 100 my $s = $_ || [];
-63 11 my $t = $y | $z;
-64 *** 11 50 my $u = $y || 0;
-65 *** 11 50 my $v = $y || undef;
-66 *** 11 50 my $w = $z || 0;
-67
-68 *** 11 50 $p ||= $y;
-69 *** 11 50 $p ||= $z;
-70 11 100 $x[ 6] ||= $y;
-71 *** 11 50 $x[ 7] ||= $z;
-72 11 100 $x[ 8] ||= 1;
-73 11 100 $x[ 9] ||= {};
-74 11 100 $x[10] ||= \"foo";
-75 11 100 $x[11] ||= \$y;
-76 11 100 $x[12] ||= \*STDIO;
-77 *** 11 100 0 $x[13] ||= sub { 1 };
+49 {
+50 33 $x[3]++;
+51 }
+52
+53 *** 11 50 if ($z)
+54 {
+55 *** 0 $x[4]++;
+56 }
+57 else
+58 {
+59 11 $x[5]++;
+60 }
+61
+62 *** 11 33 my $p = $y || $z;
+63 *** 11 33 my $q = $z || $y;
+64 11 100 my $r = $_ || "qqq";
+65 11 100 my $s = $_ || [];
+66 11 my $t = $y | $z;
+67 *** 11 50 my $u = $y || 0;
+68 *** 11 50 my $v = $y || undef;
+69 *** 11 50 my $w = $z || 0;
+70
+71 *** 11 50 $p ||= $y;
+72 *** 11 50 $p ||= $z;
+73 11 100 $x[ 6] ||= $y;
+74 *** 11 50 $x[ 7] ||= $z;
+75 11 100 $x[ 8] ||= 1;
+76 11 100 $x[ 9] ||= {};
+77 11 100 $x[10] ||= \"foo";
+78 11 100 $x[11] ||= \$y;
+79 11 100 $x[12] ||= \*STDIO;
+80 *** 11 100 0 $x[13] ||= sub { 1 };
*** 0
-78 11 100 $x[14] ||= *::foo{SCALAR};
-79 *** 11 50 $x[15] ||= *STDIO{IO};
-80 11 100 $x[16] ||= bless {}, "XXX";
-81 11 100 $x[17] ||= <<"EOD";
-82 blah
-83 EOD
-84 *** 11 50 cond_dor(\@x) if exists &cond_dor;
-85 }
-86
-87 # print join(", ", @x), "\n";
+81 11 100 $x[14] ||= *::foo{SCALAR};
+82 *** 11 50 $x[15] ||= *STDIO{IO};
+83 11 100 $x[16] ||= bless {}, "XXX";
+84 11 100 $x[17] ||= <<"EOD";
+85 blah
+86 EOD
+87 *** 11 50 cond_dor(\@x) if exists &cond_dor;
+88 }
+89
+90 # print join(", ", @x), "\n";
Branches
@@ -115,16 +118,16 @@ Branches
line err % true false branch
----- --- ------ ------ ------ ------
-19 *** 50 0 1 if ($] >= 5.009)
-25 *** 0 0 0 unless (my $return = do $file)
-27 *** 0 0 0 if $@
-28 *** 0 0 0 unless defined $return
-29 *** 0 0 0 unless $return
-35 *** 50 0 11 unless $y
-38 *** 50 0 11 unless $y or $x[0]++
-42 *** 50 11 0 unless $z
-50 *** 50 0 11 if ($z) { }
-84 *** 50 0 11 if exists ->{Deparse error: Can't locate object method "name" via package "B::NULL" (perhaps you forgot to load "B::NULL"?) at /usr/local/pkg/perl-5.6.2/lib/5.6.2/i686-linux/B/Deparse.pm line 409.
+22 *** 50 0 1 if ($] >= 5.009)
+28 *** 0 0 0 unless (my $return = do $file)
+30 *** 0 0 0 if $@
+31 *** 0 0 0 unless defined $return
+32 *** 0 0 0 unless $return
+38 *** 50 0 11 unless $y
+41 *** 50 0 11 unless $y or $x[0]++
+45 *** 50 11 0 unless $z
+53 *** 50 0 11 if ($z) { }
+87 *** 50 0 11 if exists ->{Deparse error: Can't locate object method "name" via package "B::NULL" (perhaps you forgot to load "B::NULL"?) at /usr/local/pkg/perl/default/perl-5.6.2/lib/5.6.2/i686-linux/B/Deparse.pm line 409.
}
@@ -135,36 +138,36 @@ or 2 conditions
line err % l !l expr
----- --- ------ ------ ------ ----
-61 100 10 1 $_ || 'qqq'
-62 100 10 1 $_ || []
-64 *** 50 11 0 $y || 0
-65 *** 50 11 0 $y || undef
-66 *** 50 0 11 $z || 0
-68 *** 50 11 0 $p ||= $y
-69 *** 50 11 0 $p ||= $z
-70 100 10 1 $x[6] ||= $y
-71 *** 50 0 11 $x[7] ||= $z
-72 100 10 1 $x[8] ||= 1
-73 100 10 1 $x[9] ||= {}
-74 100 10 1 $x[10] ||= \('foo')
-75 100 10 1 $x[11] ||= \$y
-76 100 10 1 $x[12] ||= \*STDIO
-77 100 10 1 $x[13] ||= sub {
+64 100 10 1 $_ || 'qqq'
+65 100 10 1 $_ || []
+67 *** 50 11 0 $y || 0
+68 *** 50 11 0 $y || undef
+69 *** 50 0 11 $z || 0
+71 *** 50 11 0 $p ||= $y
+72 *** 50 11 0 $p ||= $z
+73 100 10 1 $x[6] ||= $y
+74 *** 50 0 11 $x[7] ||= $z
+75 100 10 1 $x[8] ||= 1
+76 100 10 1 $x[9] ||= {}
+77 100 10 1 $x[10] ||= \('foo')
+78 100 10 1 $x[11] ||= \$y
+79 100 10 1 $x[12] ||= \*STDIO
+80 100 10 1 $x[13] ||= sub {
1;
}
-78 100 10 1 $x[14] ||= *foo{'SCALAR'}
-79 *** 50 0 11 $x[15] ||= *STDIO{'IO'}
-80 100 10 1 $x[16] ||= bless({}, 'XXX')
-81 100 10 1 $x[17] ||= "blah\n"
+81 100 10 1 $x[14] ||= *foo{'SCALAR'}
+82 *** 50 0 11 $x[15] ||= *STDIO{'IO'}
+83 100 10 1 $x[16] ||= bless({}, 'XXX')
+84 100 10 1 $x[17] ||= "blah\n"
or 3 conditions
line err % l !l&&r !l&&!r expr
----- --- ------ ------ ------ ------ ----
-38 *** 33 11 0 0 $y or $x[0]++
-59 *** 33 11 0 0 $y || $z
-60 *** 33 0 11 0 $z || $y
+41 *** 33 11 0 0 $y or $x[0]++
+62 *** 33 11 0 0 $y || $z
+63 *** 33 0 11 0 $z || $y
Uncovered Subroutines
@@ -172,6 +175,6 @@ Uncovered Subroutines
Subroutine Count Location
---------- ----- ----------------
-__ANON__ 0 tests/cond_or:77
+__ANON__ 0 tests/cond_or:80
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,100 +20,103 @@ tests/cond_or
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
7 # The latest version of this software should be available from my homepage:
8 # http://www.pjcj.net
9
-10 1 1 use strict;
+10 # __COVER__ skip_test $] < 5.008 || $^O eq "cygwin"
+11 # __COVER__ skip_reason Busted on 5.6 and cygwin
+12
+13 1 1 use strict;
1
1
-11 1 1 use warnings;
+14 1 1 use warnings;
1
1
-12
-13 1 my @x;
-14
-15 1 my $y = 1;
-16 1 my $z = 0;
-17 1 $::foo = 17;
-18
-19 *** 1 50 if ($] >= 5.009)
-20 {
-21 *** 0 $ENV{PATH} = "/bin";
-22 *** 0 system "pwd";
-23 1 1 use lib "tests";
+15
+16 1 my @x;
+17
+18 1 my $y = 1;
+19 1 my $z = 0;
+20 1 $::foo = 17;
+21
+22 *** 1 50 if ($] >= 5.009)
+23 {
+24 *** 0 $ENV{PATH} = "/bin";
+25 *** 0 system "pwd";
+26 1 1 use lib "tests";
1
1
-24 *** 0 my $file = "cond_or.pl";
-25 *** 0 0 unless (my $return = do $file)
-26 {
-27 *** 0 0 die "couldn't parse $file: $@" if $@;
-28 *** 0 0 die "couldn't do $file: $!" unless defined $return;
-29 *** 0 0 die "couldn't run $file" unless $return;
-30 }
-31 }
-32
-33 1 for (0 .. 10)
+27 *** 0 my $file = "cond_or.pl";
+28 *** 0 0 unless (my $return = do $file)
+29 {
+30 *** 0 0 die "couldn't parse $file: $@" if $@;
+31 *** 0 0 die "couldn't do $file: $!" unless defined $return;
+32 *** 0 0 die "couldn't run $file" unless $return;
+33 }
+34 }
+35
+36 1 for (0 .. 10)
11
-34 {
-35 *** 11 50 $y ||
-36 $x[1]++;
-37
-38 *** 11 50 33 $y ||
-39 $x[0]++ ||
-40 $x[1]++;
-41
-42 *** 11 50 $x[2]++
-43 unless $z;
+37 {
+38 *** 11 50 $y ||
+39 $x[1]++;
+40
+41 *** 11 50 33 $y ||
+42 $x[0]++ ||
+43 $x[1]++;
44
-45 11 for (0 .. 2)
+45 *** 11 50 $x[2]++
+46 unless $z;
+47
+48 11 for (0 .. 2)
33
-46 {
-47 33 $x[3]++;
-48 }
-49
-50 *** 11 50 if ($z)
-51 {
-52 *** 0 $x[4]++;
-53 }
-54 else
-55 {
-56 11 $x[5]++;
-57 }
-58
-59 *** 11 33 my $p = $y || $z;
-60 *** 11 33 my $q = $z || $y;
-61 11 100 my $r = $_ || "qqq";
-62 11 100 my $s = $_ || [];
-63 11 my $t = $y | $z;
-64 *** 11 50 my $u = $y || 0;
-65 *** 11 50 my $v = $y || undef;
-66 *** 11 50 my $w = $z || 0;
-67
-68 *** 11 50 $p ||= $y;
-69 *** 11 50 $p ||= $z;
-70 11 100 $x[ 6] ||= $y;
-71 *** 11 50 $x[ 7] ||= $z;
-72 11 100 $x[ 8] ||= 1;
-73 11 100 $x[ 9] ||= {};
-74 11 100 $x[10] ||= \"foo";
-75 11 100 $x[11] ||= \$y;
-76 11 100 $x[12] ||= \*STDIO;
-77 *** 11 100 0 $x[13] ||= sub { 1 };
+49 {
+50 33 $x[3]++;
+51 }
+52
+53 *** 11 50 if ($z)
+54 {
+55 *** 0 $x[4]++;
+56 }
+57 else
+58 {
+59 11 $x[5]++;
+60 }
+61
+62 *** 11 33 my $p = $y || $z;
+63 *** 11 33 my $q = $z || $y;
+64 11 100 my $r = $_ || "qqq";
+65 11 100 my $s = $_ || [];
+66 11 my $t = $y | $z;
+67 *** 11 50 my $u = $y || 0;
+68 *** 11 50 my $v = $y || undef;
+69 *** 11 50 my $w = $z || 0;
+70
+71 *** 11 50 $p ||= $y;
+72 *** 11 50 $p ||= $z;
+73 11 100 $x[ 6] ||= $y;
+74 *** 11 50 $x[ 7] ||= $z;
+75 11 100 $x[ 8] ||= 1;
+76 11 100 $x[ 9] ||= {};
+77 11 100 $x[10] ||= \"foo";
+78 11 100 $x[11] ||= \$y;
+79 11 100 $x[12] ||= \*STDIO;
+80 *** 11 100 0 $x[13] ||= sub { 1 };
*** 0
-78 11 100 $x[14] ||= *::foo{SCALAR};
-79 *** 11 50 $x[15] ||= *STDIO{IO};
-80 11 100 $x[16] ||= bless {}, "XXX";
-81 11 100 $x[17] ||= <<"EOD";
-82 blah
-83 EOD
-84 *** 11 50 cond_dor(\@x) if exists &cond_dor;
-85 }
-86
-87 # print join(", ", @x), "\n";
+81 11 100 $x[14] ||= *::foo{SCALAR};
+82 *** 11 50 $x[15] ||= *STDIO{IO};
+83 11 100 $x[16] ||= bless {}, "XXX";
+84 11 100 $x[17] ||= <<"EOD";
+85 blah
+86 EOD
+87 *** 11 50 cond_dor(\@x) if exists &cond_dor;
+88 }
+89
+90 # print join(", ", @x), "\n";
Branches
@@ -121,16 +124,16 @@ Branches
line err % true false branch
----- --- ------ ------ ------ ------
-19 *** 50 0 1 if ($] >= 5.009)
-25 *** 0 0 0 unless (my $return = do $file)
-27 *** 0 0 0 if $@
-28 *** 0 0 0 unless defined $return
-29 *** 0 0 0 unless $return
-35 *** 50 0 11 unless $y
-38 *** 50 0 11 unless $y or $x[0]++
-42 *** 50 11 0 unless $z
-50 *** 50 0 11 if ($z) { }
-84 *** 50 0 11 if exists &cond_dor
+22 *** 50 0 1 if ($] >= 5.009)
+28 *** 0 0 0 unless (my $return = do $file)
+30 *** 0 0 0 if $@
+31 *** 0 0 0 unless defined $return
+32 *** 0 0 0 unless $return
+38 *** 50 0 11 unless $y
+41 *** 50 0 11 unless $y or $x[0]++
+45 *** 50 11 0 unless $z
+53 *** 50 0 11 if ($z) { }
+87 *** 50 0 11 if exists &cond_dor
Conditions
@@ -140,36 +143,36 @@ or 2 conditions
line err % l !l expr
----- --- ------ ------ ------ ----
-61 100 10 1 $_ || 'qqq'
-62 100 10 1 $_ || []
-64 *** 50 11 0 $y || 0
-65 *** 50 11 0 $y || undef
-66 *** 50 0 11 $z || 0
-68 *** 50 11 0 $p ||= $y
-69 *** 50 11 0 $p ||= $z
-70 100 10 1 $x[6] ||= $y
-71 *** 50 0 11 $x[7] ||= $z
-72 100 10 1 $x[8] ||= 1
-73 100 10 1 $x[9] ||= {}
-74 100 10 1 $x[10] ||= \('foo')
-75 100 10 1 $x[11] ||= \$y
-76 100 10 1 $x[12] ||= \*STDIO
-77 100 10 1 $x[13] ||= sub {
+64 100 10 1 $_ || 'qqq'
+65 100 10 1 $_ || []
+67 *** 50 11 0 $y || 0
+68 *** 50 11 0 $y || undef
+69 *** 50 0 11 $z || 0
+71 *** 50 11 0 $p ||= $y
+72 *** 50 11 0 $p ||= $z
+73 100 10 1 $x[6] ||= $y
+74 *** 50 0 11 $x[7] ||= $z
+75 100 10 1 $x[8] ||= 1
+76 100 10 1 $x[9] ||= {}
+77 100 10 1 $x[10] ||= \('foo')
+78 100 10 1 $x[11] ||= \$y
+79 100 10 1 $x[12] ||= \*STDIO
+80 100 10 1 $x[13] ||= sub {
1;
}
-78 100 10 1 $x[14] ||= *foo{'SCALAR'}
-79 *** 50 0 11 $x[15] ||= *STDIO{'IO'}
-80 100 10 1 $x[16] ||= bless({}, 'XXX')
-81 100 10 1 $x[17] ||= "blah\n"
+81 100 10 1 $x[14] ||= *foo{'SCALAR'}
+82 *** 50 0 11 $x[15] ||= *STDIO{'IO'}
+83 100 10 1 $x[16] ||= bless({}, 'XXX')
+84 100 10 1 $x[17] ||= "blah\n"
or 3 conditions
line err % l !l&&r !l&&!r expr
----- --- ------ ------ ------ ------ ----
-38 *** 33 11 0 0 $y or $x[0]++
-59 *** 33 11 0 0 $y || $z
-60 *** 33 0 11 0 $z || $y
+41 *** 33 11 0 0 $y or $x[0]++
+62 *** 33 11 0 0 $y || $z
+63 *** 33 0 11 0 $z || $y
Covered Subroutines
@@ -177,15 +180,15 @@ Covered Subroutines
Subroutine Count Location
---------- ----- ----------------
-BEGIN 1 tests/cond_or:10
-BEGIN 1 tests/cond_or:11
-BEGIN 1 tests/cond_or:23
+BEGIN 1 tests/cond_or:13
+BEGIN 1 tests/cond_or:14
+BEGIN 1 tests/cond_or:26
Uncovered Subroutines
---------------------
Subroutine Count Location
---------- ----- ----------------
-__ANON__ 0 tests/cond_or:77
+__ANON__ 0 tests/cond_or:80
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,98 +20,101 @@ tests/cond_or
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
7 # The latest version of this software should be available from my homepage:
8 # http://www.pjcj.net
9
-10 1 1 use strict;
+10 # __COVER__ skip_test $] < 5.008 || $^O eq "cygwin"
+11 # __COVER__ skip_reason Busted on 5.6 and cygwin
+12
+13 1 1 use strict;
1
1
-11 1 1 use warnings;
+14 1 1 use warnings;
1
1
-12
-13 1 my @x;
-14
-15 1 my $y = 1;
-16 1 my $z = 0;
-17 1 $::foo = 17;
-18
-19 *** 1 50 if ($] >= 5.009)
-20 {
-21 *** 0 $ENV{PATH} = "/bin";
-22 *** 0 system "pwd";
-23 1 1 use lib "tests";
+15
+16 1 my @x;
+17
+18 1 my $y = 1;
+19 1 my $z = 0;
+20 1 $::foo = 17;
+21
+22 *** 1 50 if ($] >= 5.009)
+23 {
+24 *** 0 $ENV{PATH} = "/bin";
+25 *** 0 system "pwd";
+26 1 1 use lib "tests";
1
1
-24 *** 0 my $file = "cond_or.pl";
-25 *** 0 0 unless (my $return = do $file)
-26 {
-27 *** 0 0 die "couldn't parse $file: $@" if $@;
-28 *** 0 0 die "couldn't do $file: $!" unless defined $return;
-29 *** 0 0 die "couldn't run $file" unless $return;
-30 }
-31 }
-32
-33 1 for (0 .. 10)
-34 {
-35 *** 11 50 $y ||
-36 $x[1]++;
-37
-38 *** 11 50 33 $y ||
-39 $x[0]++ ||
-40 $x[1]++;
-41
-42 *** 11 50 $x[2]++
-43 unless $z;
+27 *** 0 my $file = "cond_or.pl";
+28 *** 0 0 unless (my $return = do $file)
+29 {
+30 *** 0 0 die "couldn't parse $file: $@" if $@;
+31 *** 0 0 die "couldn't do $file: $!" unless defined $return;
+32 *** 0 0 die "couldn't run $file" unless $return;
+33 }
+34 }
+35
+36 1 for (0 .. 10)
+37 {
+38 *** 11 50 $y ||
+39 $x[1]++;
+40
+41 *** 11 50 33 $y ||
+42 $x[0]++ ||
+43 $x[1]++;
44
-45 11 for (0 .. 2)
-46 {
-47 33 $x[3]++;
-48 }
-49
-50 *** 11 50 if ($z)
-51 {
-52 *** 0 $x[4]++;
-53 }
-54 else
-55 {
-56 11 $x[5]++;
-57 }
-58
-59 *** 11 33 my $p = $y || $z;
-60 *** 11 33 my $q = $z || $y;
-61 11 100 my $r = $_ || "qqq";
-62 11 100 my $s = $_ || [];
-63 11 my $t = $y | $z;
-64 *** 11 50 my $u = $y || 0;
-65 *** 11 50 my $v = $y || undef;
-66 *** 11 50 my $w = $z || 0;
-67
-68 *** 11 50 $p ||= $y;
-69 *** 11 50 $p ||= $z;
-70 11 100 $x[ 6] ||= $y;
-71 *** 11 50 $x[ 7] ||= $z;
-72 11 100 $x[ 8] ||= 1;
-73 11 100 $x[ 9] ||= {};
-74 11 100 $x[10] ||= \"foo";
-75 11 100 $x[11] ||= \$y;
-76 11 100 $x[12] ||= \*STDIO;
-77 *** 11 100 0 $x[13] ||= sub { 1 };
+45 *** 11 50 $x[2]++
+46 unless $z;
+47
+48 11 for (0 .. 2)
+49 {
+50 33 $x[3]++;
+51 }
+52
+53 *** 11 50 if ($z)
+54 {
+55 *** 0 $x[4]++;
+56 }
+57 else
+58 {
+59 11 $x[5]++;
+60 }
+61
+62 *** 11 33 my $p = $y || $z;
+63 *** 11 33 my $q = $z || $y;
+64 11 100 my $r = $_ || "qqq";
+65 11 100 my $s = $_ || [];
+66 11 my $t = $y | $z;
+67 *** 11 50 my $u = $y || 0;
+68 *** 11 50 my $v = $y || undef;
+69 *** 11 50 my $w = $z || 0;
+70
+71 *** 11 50 $p ||= $y;
+72 *** 11 50 $p ||= $z;
+73 11 100 $x[ 6] ||= $y;
+74 *** 11 50 $x[ 7] ||= $z;
+75 11 100 $x[ 8] ||= 1;
+76 11 100 $x[ 9] ||= {};
+77 11 100 $x[10] ||= \"foo";
+78 11 100 $x[11] ||= \$y;
+79 11 100 $x[12] ||= \*STDIO;
+80 *** 11 100 0 $x[13] ||= sub { 1 };
*** 0
-78 11 100 $x[14] ||= *::foo{SCALAR};
-79 *** 11 50 $x[15] ||= *STDIO{IO};
-80 11 100 $x[16] ||= bless {}, "XXX";
-81 11 100 $x[17] ||= <<"EOD";
-82 blah
-83 EOD
-84 *** 11 50 cond_dor(\@x) if exists &cond_dor;
-85 }
-86
-87 # print join(", ", @x), "\n";
+81 11 100 $x[14] ||= *::foo{SCALAR};
+82 *** 11 50 $x[15] ||= *STDIO{IO};
+83 11 100 $x[16] ||= bless {}, "XXX";
+84 11 100 $x[17] ||= <<"EOD";
+85 blah
+86 EOD
+87 *** 11 50 cond_dor(\@x) if exists &cond_dor;
+88 }
+89
+90 # print join(", ", @x), "\n";
Branches
@@ -119,16 +122,16 @@ Branches
line err % true false branch
----- --- ------ ------ ------ ------
-19 *** 50 0 1 if ($] >= 5.009)
-25 *** 0 0 0 unless (my $return = do $file)
-27 *** 0 0 0 if $@
-28 *** 0 0 0 unless defined $return
-29 *** 0 0 0 unless $return
-35 *** 50 0 11 unless $y
-38 *** 50 0 11 unless $y or $x[0]++
-42 *** 50 11 0 unless $z
-50 *** 50 0 11 if ($z) { }
-84 *** 50 0 11 if exists &cond_dor
+22 *** 50 0 1 if ($] >= 5.009)
+28 *** 0 0 0 unless (my $return = do $file)
+30 *** 0 0 0 if $@
+31 *** 0 0 0 unless defined $return
+32 *** 0 0 0 unless $return
+38 *** 50 0 11 unless $y
+41 *** 50 0 11 unless $y or $x[0]++
+45 *** 50 11 0 unless $z
+53 *** 50 0 11 if ($z) { }
+87 *** 50 0 11 if exists &cond_dor
Conditions
@@ -138,36 +141,36 @@ or 2 conditions
line err % l !l expr
----- --- ------ ------ ------ ----
-61 100 10 1 $_ || 'qqq'
-62 100 10 1 $_ || []
-64 *** 50 11 0 $y || 0
-65 *** 50 11 0 $y || undef
-66 *** 50 0 11 $z || 0
-68 *** 50 11 0 $p ||= $y
-69 *** 50 11 0 $p ||= $z
-70 100 10 1 $x[6] ||= $y
-71 *** 50 0 11 $x[7] ||= $z
-72 100 10 1 $x[8] ||= 1
-73 100 10 1 $x[9] ||= {}
-74 100 10 1 $x[10] ||= \'foo'
-75 100 10 1 $x[11] ||= \$y
-76 100 10 1 $x[12] ||= \*STDIO
-77 100 10 1 $x[13] ||= sub {
+64 100 10 1 $_ || 'qqq'
+65 100 10 1 $_ || []
+67 *** 50 11 0 $y || 0
+68 *** 50 11 0 $y || undef
+69 *** 50 0 11 $z || 0
+71 *** 50 11 0 $p ||= $y
+72 *** 50 11 0 $p ||= $z
+73 100 10 1 $x[6] ||= $y
+74 *** 50 0 11 $x[7] ||= $z
+75 100 10 1 $x[8] ||= 1
+76 100 10 1 $x[9] ||= {}
+77 100 10 1 $x[10] ||= \'foo'
+78 100 10 1 $x[11] ||= \$y
+79 100 10 1 $x[12] ||= \*STDIO
+80 100 10 1 $x[13] ||= sub {
1;
}
-78 100 10 1 $x[14] ||= *foo{'SCALAR'}
-79 *** 50 0 11 $x[15] ||= *STDIO{'IO'}
-80 100 10 1 $x[16] ||= bless({}, 'XXX')
-81 100 10 1 $x[17] ||= "blah\n"
+81 100 10 1 $x[14] ||= *foo{'SCALAR'}
+82 *** 50 0 11 $x[15] ||= *STDIO{'IO'}
+83 100 10 1 $x[16] ||= bless({}, 'XXX')
+84 100 10 1 $x[17] ||= "blah\n"
or 3 conditions
line err % l !l&&r !l&&!r expr
----- --- ------ ------ ------ ------ ----
-38 *** 33 11 0 0 $y or $x[0]++
-59 *** 33 11 0 0 $y || $z
-60 *** 33 0 11 0 $z || $y
+41 *** 33 11 0 0 $y or $x[0]++
+62 *** 33 11 0 0 $y || $z
+63 *** 33 0 11 0 $z || $y
Covered Subroutines
@@ -175,15 +178,15 @@ Covered Subroutines
Subroutine Count Location
---------- ----- ----------------
-BEGIN 1 tests/cond_or:10
-BEGIN 1 tests/cond_or:11
-BEGIN 1 tests/cond_or:23
+BEGIN 1 tests/cond_or:13
+BEGIN 1 tests/cond_or:14
+BEGIN 1 tests/cond_or:26
Uncovered Subroutines
---------------------
Subroutine Count Location
---------- ----- ----------------
-__ANON__ 0 tests/cond_or:77
+__ANON__ 0 tests/cond_or:80
@@ -1,170 +0,0 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
-
-
------------------------------------------- ------ ------ ------ ------ ------
-File stmt bran cond sub total
------------------------------------------- ------ ------ ------ ------ ------
-tests/cond_or 95.5 50.0 72.3 66.7 79.8
-Total 95.5 50.0 72.3 66.7 79.8
------------------------------------------- ------ ------ ------ ------ ------
-
-
-Run: ...
-Perl version: ...
-OS: ...
-Start: ...
-Finish: ...
-
-tests/cond_or
-
-line err stmt bran cond sub code
-1 #!/usr/bin/perl
-2
-3 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
-4
-5 # This software is free. It is licensed under the same terms as Perl itself.
-6
-7 # The latest version of this software should be available from my homepage:
-8 # http://www.pjcj.net
-9
-10 1 1 use strict;
- 1
- 1
-11 1 1 use warnings;
- 1
- 1
-12
-13 1 my @x;
-14
-15 1 my $y = 1;
-16 1 my $z = 0;
-17 1 $::foo = 17;
-18
-19 1 for (0 .. 10)
-20 {
-21 *** 11 50 $y ||
-22 $x[1]++;
-23
-24 *** 11 50 33 $y ||
-25 $x[0]++ ||
-26 $x[1]++;
-27
-28 *** 11 50 $x[2]++
-29 unless $z;
-30
-31 11 for (0 .. 2)
-32 {
-33 33 $x[3]++;
-34 }
-35
-36 *** 11 50 if ($z)
-37 {
-38 *** 0 $x[4]++;
-39 }
-40 else
-41 {
-42 11 $x[5]++;
-43 }
-44
-45 *** 11 33 my $p = $y || $z;
-46 *** 11 33 my $q = $z || $y;
-47 11 100 my $r = $_ || "qqq";
-48 11 100 my $s = $_ || [];
-49 11 my $t = $y | $z;
-50 *** 11 50 my $u = $y || 0;
-51 *** 11 50 my $v = $y || undef;
-52 *** 11 50 my $w = $z || 0;
-53
-54 *** 11 50 $p ||= $y;
-55 *** 11 50 $p ||= $z;
-56 11 100 $x[ 6] ||= $y;
-57 *** 11 50 $x[ 7] ||= $z;
-58 11 100 $x[ 8] ||= 1;
-59 11 100 $x[ 9] ||= {};
-60 11 100 $x[10] ||= \"foo";
-61 11 100 $x[11] ||= \$y;
-62 11 100 $x[12] ||= \*STDIO;
-63 *** 11 100 0 $x[13] ||= sub { 1 };
- *** 0
-64 11 100 $x[14] ||= *::foo{SCALAR};
-65 *** 11 50 $x[15] ||= *STDIO{IO};
-66 11 100 $x[16] ||= bless {}, "XXX";
-67 11 100 $x[17] ||= <<"EOD";
-68 blah
-69 EOD
-70 *** 11 50 if ($] >= 5.009)
-71 {
-72 11 eval '$x[18] //= 0';
-73 }
-74 }
-75
-76 # print join(", ", @x), "\n";
-
-
-Branches
---------
-
-line err % true false branch
------ --- ------ ------ ------ ------
-21 *** 50 0 11 unless $y
-24 *** 50 0 11 unless $y or $x[0]++
-28 *** 50 11 0 unless $z
-36 *** 50 0 11 if ($z) { }
-70 *** 50 11 0 if ($] >= 5.009)
-
-
-Conditions
-----------
-
-or 2 conditions
-
-line err % l !l expr
------ --- ------ ------ ------ ----
-47 100 10 1 $_ || 'qqq'
-48 100 10 1 $_ || []
-50 *** 50 11 0 $y || 0
-51 *** 50 11 0 $y || undef
-52 *** 50 0 11 $z || 0
-54 *** 50 11 0 $p ||= $y
-55 *** 50 11 0 $p ||= $z
-56 100 10 1 $x[6] ||= $y
-57 *** 50 0 11 $x[7] ||= $z
-58 100 10 1 $x[8] ||= 1
-59 100 10 1 $x[9] ||= {}
-60 100 10 1 $x[10] ||= \'foo'
-61 100 10 1 $x[11] ||= \$y
-62 100 10 1 $x[12] ||= \*STDIO
-63 100 10 1 $x[13] ||= sub {
- 1;
-}
-
-64 100 10 1 $x[14] ||= *foo{'SCALAR'}
-65 *** 50 0 11 $x[15] ||= *STDIO{'IO'}
-66 100 10 1 $x[16] ||= bless({}, 'XXX')
-67 100 10 1 $x[17] ||= "blah\n"
-
-or 3 conditions
-
-line err % l !l&&r !l&&!r expr
------ --- ------ ------ ------ ------ ----
-24 *** 33 11 0 0 $y or $x[0]++
-45 *** 33 11 0 0 $y || $z
-46 *** 33 0 11 0 $z || $y
-
-
-Covered Subroutines
--------------------
-
-Subroutine Count Location
----------- ----- ----------------
-BEGIN 1 tests/cond_or:10
-BEGIN 1 tests/cond_or:11
-
-Uncovered Subroutines
----------------------
-
-Subroutine Count Location
----------- ----- ----------------
-__ANON__ 0 tests/cond_or:63
-
-
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -21,98 +21,101 @@ tests/cond_or
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
7 # The latest version of this software should be available from my homepage:
8 # http://www.pjcj.net
9
-10 1 1 use strict;
+10 # __COVER__ skip_test $] < 5.008 || $^O eq "cygwin"
+11 # __COVER__ skip_reason Busted on 5.6 and cygwin
+12
+13 1 1 use strict;
1
1
-11 1 1 use warnings;
+14 1 1 use warnings;
1
1
-12
-13 1 my @x;
-14
-15 1 my $y = 1;
-16 1 my $z = 0;
-17 1 $::foo = 17;
-18
-19 *** 1 50 if ($] >= 5.009)
-20 {
-21 1 $ENV{PATH} = "/bin";
-22 1 system "pwd";
-23 1 1 use lib "tests";
+15
+16 1 my @x;
+17
+18 1 my $y = 1;
+19 1 my $z = 0;
+20 1 $::foo = 17;
+21
+22 *** 1 50 if ($] >= 5.009)
+23 {
+24 1 $ENV{PATH} = "/bin";
+25 1 system "pwd";
+26 1 1 use lib "tests";
1
1
-24 1 my $file = "cond_or.pl";
-25 *** 1 50 unless (my $return = do $file)
-26 {
-27 *** 0 0 die "couldn't parse $file: $@" if $@;
-28 *** 0 0 die "couldn't do $file: $!" unless defined $return;
-29 *** 0 0 die "couldn't run $file" unless $return;
-30 }
-31 }
-32
-33 1 for (0 .. 10)
-34 {
-35 *** 11 50 $y ||
-36 $x[1]++;
-37
-38 *** 11 50 33 $y ||
-39 $x[0]++ ||
-40 $x[1]++;
-41
-42 *** 11 50 $x[2]++
-43 unless $z;
+27 1 my $file = "cond_or.pl";
+28 *** 1 50 unless (my $return = do $file)
+29 {
+30 *** 0 0 die "couldn't parse $file: $@" if $@;
+31 *** 0 0 die "couldn't do $file: $!" unless defined $return;
+32 *** 0 0 die "couldn't run $file" unless $return;
+33 }
+34 }
+35
+36 1 for (0 .. 10)
+37 {
+38 *** 11 50 $y ||
+39 $x[1]++;
+40
+41 *** 11 50 33 $y ||
+42 $x[0]++ ||
+43 $x[1]++;
44
-45 11 for (0 .. 2)
-46 {
-47 33 $x[3]++;
-48 }
-49
-50 *** 11 50 if ($z)
-51 {
-52 *** 0 $x[4]++;
-53 }
-54 else
-55 {
-56 11 $x[5]++;
-57 }
-58
-59 *** 11 33 my $p = $y || $z;
-60 *** 11 33 my $q = $z || $y;
-61 11 100 my $r = $_ || "qqq";
-62 11 100 my $s = $_ || [];
-63 11 my $t = $y | $z;
-64 *** 11 50 my $u = $y || 0;
-65 *** 11 50 my $v = $y || undef;
-66 *** 11 50 my $w = $z || 0;
-67
-68 *** 11 50 $p ||= $y;
-69 *** 11 50 $p ||= $z;
-70 11 100 $x[ 6] ||= $y;
-71 *** 11 50 $x[ 7] ||= $z;
-72 11 100 $x[ 8] ||= 1;
-73 11 100 $x[ 9] ||= {};
-74 11 100 $x[10] ||= \"foo";
-75 11 100 $x[11] ||= \$y;
-76 11 100 $x[12] ||= \*STDIO;
-77 *** 11 100 0 $x[13] ||= sub { 1 };
+45 *** 11 50 $x[2]++
+46 unless $z;
+47
+48 11 for (0 .. 2)
+49 {
+50 33 $x[3]++;
+51 }
+52
+53 *** 11 50 if ($z)
+54 {
+55 *** 0 $x[4]++;
+56 }
+57 else
+58 {
+59 11 $x[5]++;
+60 }
+61
+62 *** 11 33 my $p = $y || $z;
+63 *** 11 33 my $q = $z || $y;
+64 11 100 my $r = $_ || "qqq";
+65 11 100 my $s = $_ || [];
+66 11 my $t = $y | $z;
+67 *** 11 50 my $u = $y || 0;
+68 *** 11 50 my $v = $y || undef;
+69 *** 11 50 my $w = $z || 0;
+70
+71 *** 11 50 $p ||= $y;
+72 *** 11 50 $p ||= $z;
+73 11 100 $x[ 6] ||= $y;
+74 *** 11 50 $x[ 7] ||= $z;
+75 11 100 $x[ 8] ||= 1;
+76 11 100 $x[ 9] ||= {};
+77 11 100 $x[10] ||= \"foo";
+78 11 100 $x[11] ||= \$y;
+79 11 100 $x[12] ||= \*STDIO;
+80 *** 11 100 0 $x[13] ||= sub { 1 };
*** 0
-78 11 100 $x[14] ||= *::foo{SCALAR};
-79 *** 11 50 $x[15] ||= *STDIO{IO};
-80 11 100 $x[16] ||= bless {}, "XXX";
-81 11 100 $x[17] ||= <<"EOD";
-82 blah
-83 EOD
-84 *** 11 50 cond_dor(\@x) if exists &cond_dor;
-85 }
-86
-87 # print join(", ", @x), "\n";
+81 11 100 $x[14] ||= *::foo{SCALAR};
+82 *** 11 50 $x[15] ||= *STDIO{IO};
+83 11 100 $x[16] ||= bless {}, "XXX";
+84 11 100 $x[17] ||= <<"EOD";
+85 blah
+86 EOD
+87 *** 11 50 cond_dor(\@x) if exists &cond_dor;
+88 }
+89
+90 # print join(", ", @x), "\n";
Branches
@@ -120,16 +123,16 @@ Branches
line err % true false branch
----- --- ------ ------ ------ ------
-19 *** 50 1 0 if ($] >= 5.009)
-25 *** 50 0 1 unless (my $return = do $file)
-27 *** 0 0 0 if $@
-28 *** 0 0 0 unless defined $return
-29 *** 0 0 0 unless $return
-35 *** 50 0 11 unless $y
-38 *** 50 0 11 unless $y or $x[0]++
-42 *** 50 11 0 unless $z
-50 *** 50 0 11 if ($z) { }
-84 *** 50 11 0 if exists &cond_dor
+22 *** 50 1 0 if ($] >= 5.009)
+28 *** 50 0 1 unless (my $return = do $file)
+30 *** 0 0 0 if $@
+31 *** 0 0 0 unless defined $return
+32 *** 0 0 0 unless $return
+38 *** 50 0 11 unless $y
+41 *** 50 0 11 unless $y or $x[0]++
+45 *** 50 11 0 unless $z
+53 *** 50 0 11 if ($z) { }
+87 *** 50 11 0 if exists &cond_dor
Conditions
@@ -139,36 +142,36 @@ or 2 conditions
line err % l !l expr
----- --- ------ ------ ------ ----
-61 100 10 1 $_ || 'qqq'
-62 100 10 1 $_ || []
-64 *** 50 11 0 $y || 0
-65 *** 50 11 0 $y || undef
-66 *** 50 0 11 $z || 0
-68 *** 50 11 0 $p ||= $y
-69 *** 50 11 0 $p ||= $z
-70 100 10 1 $x[6] ||= $y
-71 *** 50 0 11 $x[7] ||= $z
-72 100 10 1 $x[8] ||= 1
-73 100 10 1 $x[9] ||= {}
-74 100 10 1 $x[10] ||= \'foo'
-75 100 10 1 $x[11] ||= \$y
-76 100 10 1 $x[12] ||= \*STDIO
-77 100 10 1 $x[13] ||= sub {
+64 100 10 1 $_ || 'qqq'
+65 100 10 1 $_ || []
+67 *** 50 11 0 $y || 0
+68 *** 50 11 0 $y || undef
+69 *** 50 0 11 $z || 0
+71 *** 50 11 0 $p ||= $y
+72 *** 50 11 0 $p ||= $z
+73 100 10 1 $x[6] ||= $y
+74 *** 50 0 11 $x[7] ||= $z
+75 100 10 1 $x[8] ||= 1
+76 100 10 1 $x[9] ||= {}
+77 100 10 1 $x[10] ||= \'foo'
+78 100 10 1 $x[11] ||= \$y
+79 100 10 1 $x[12] ||= \*STDIO
+80 100 10 1 $x[13] ||= sub {
1;
}
-78 100 10 1 $x[14] ||= *foo{'SCALAR'}
-79 *** 50 0 11 $x[15] ||= *STDIO{'IO'}
-80 100 10 1 $x[16] ||= bless({}, 'XXX')
-81 100 10 1 $x[17] ||= "blah\n"
+81 100 10 1 $x[14] ||= *foo{'SCALAR'}
+82 *** 50 0 11 $x[15] ||= *STDIO{'IO'}
+83 100 10 1 $x[16] ||= bless({}, 'XXX')
+84 100 10 1 $x[17] ||= "blah\n"
or 3 conditions
line err % l !l&&r !l&&!r expr
----- --- ------ ------ ------ ------ ----
-38 *** 33 11 0 0 $y or $x[0]++
-59 *** 33 11 0 0 $y || $z
-60 *** 33 0 11 0 $z || $y
+41 *** 33 11 0 0 $y or $x[0]++
+62 *** 33 11 0 0 $y || $z
+63 *** 33 0 11 0 $z || $y
Covered Subroutines
@@ -176,16 +179,16 @@ Covered Subroutines
Subroutine Count Location
---------- ----- ----------------
-BEGIN 1 tests/cond_or:10
-BEGIN 1 tests/cond_or:11
-BEGIN 1 tests/cond_or:23
+BEGIN 1 tests/cond_or:13
+BEGIN 1 tests/cond_or:14
+BEGIN 1 tests/cond_or:26
Uncovered Subroutines
---------------------
Subroutine Count Location
---------- ----- ----------------
-__ANON__ 0 tests/cond_or:77
+__ANON__ 0 tests/cond_or:80
tests/cond_or.pl
@@ -193,7 +196,7 @@ tests/cond_or.pl
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/cond_xor
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/cond_xor
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/cond_xor
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/default_param
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/default_param
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/default_param
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/deparse
line err stmt bran cond sub code
1 #!/usr/bin/perl -l
2
-3 # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/deparse
line err stmt bran cond sub code
1 #!/usr/bin/perl -l
2
-3 # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/destroy
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/dynamic_subs
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/dynamic_subs
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/dynamic_subs
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/dynamic_subs
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,60 +20,63 @@ tests/eval1
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
7 # The latest version of this software should be available from my homepage:
8 # http://www.pjcj.net
9
-10 use strict;
-11 use warnings;
+10 # __COVER__ skip_test $] == 5.010
+11 # __COVER__ skip_reason One test fails only under make test on 5.10.0 unhreaded
12
-13 use lib -d "t" ? "t" : "..";
-14
-15 1 my $x;
-16
-17 1 3 eval <<'EOS';
+13 use strict;
+14 use warnings;
+15
+16 use lib -d "t" ? "t" : "..";
+17
+18 1 my $x;
+19
+20 1 3 eval <<'EOS';
3
3
-18 sub e
-19 {
-20 $x++;
-21 $x
-22 }
-23 EOS
-24
-25 1 2 eval <<'EOS';
+21 sub e
+22 {
+23 $x++;
+24 $x
+25 }
+26 EOS
+27
+28 1 2 eval <<'EOS';
*** 2 0
2 3
*** 0
3
-26 sub f
-27 {
-28 $x++;
-29 $x
-30 }
-31
-32 sub g
-33 {
-34 $x++;
-35 }
-36
-37 sub h
-38 {
-39 $x++;
-40 }
-41 EOS
-42
-43 1 e();
-44 1 e();
-45 1 e();
-46 1 f();
-47 1 f();
-48 1 h();
-49 1 h();
-50 1 h();
+29 sub f
+30 {
+31 $x++;
+32 $x
+33 }
+34
+35 sub g
+36 {
+37 $x++;
+38 }
+39
+40 sub h
+41 {
+42 $x++;
+43 }
+44 EOS
+45
+46 1 e();
+47 1 e();
+48 1 e();
+49 1 f();
+50 1 f();
+51 1 h();
+52 1 h();
+53 1 h();
Covered Subroutines
@@ -81,15 +84,15 @@ Covered Subroutines
Subroutine Count Location
---------- ----- --------------
-e 3 tests/eval1:17
-f 2 tests/eval1:25
-h 3 tests/eval1:25
+e 3 tests/eval1:20
+f 2 tests/eval1:28
+h 3 tests/eval1:28
Uncovered Subroutines
---------------------
Subroutine Count Location
---------- ----- --------------
-g 0 tests/eval1:25
+g 0 tests/eval1:28
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,66 +20,69 @@ tests/eval1
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
7 # The latest version of this software should be available from my homepage:
8 # http://www.pjcj.net
9
-10 1 1 use strict;
+10 # __COVER__ skip_test $] == 5.010
+11 # __COVER__ skip_reason One test fails only under make test on 5.10.0 unhreaded
+12
+13 1 1 use strict;
1
1
-11 1 1 use warnings;
+14 1 1 use warnings;
1
1
-12
-13 *** 1 50 1 use lib -d "t" ? "t" : "..";
+15
+16 *** 1 50 1 use lib -d "t" ? "t" : "..";
1
1
-14
-15 1 my $x;
-16
-17 1 3 eval <<'EOS';
+17
+18 1 my $x;
+19
+20 1 3 eval <<'EOS';
3
3
-18 sub e
-19 {
-20 $x++;
-21 $x
-22 }
-23 EOS
-24
-25 1 2 eval <<'EOS';
+21 sub e
+22 {
+23 $x++;
+24 $x
+25 }
+26 EOS
+27
+28 1 2 eval <<'EOS';
*** 2 0
2 3
*** 0
3
-26 sub f
-27 {
-28 $x++;
-29 $x
-30 }
-31
-32 sub g
-33 {
-34 $x++;
-35 }
-36
-37 sub h
-38 {
-39 $x++;
-40 }
-41 EOS
-42
-43 1 e();
-44 1 e();
-45 1 e();
-46 1 f();
-47 1 f();
-48 1 h();
-49 1 h();
-50 1 h();
+29 sub f
+30 {
+31 $x++;
+32 $x
+33 }
+34
+35 sub g
+36 {
+37 $x++;
+38 }
+39
+40 sub h
+41 {
+42 $x++;
+43 }
+44 EOS
+45
+46 1 e();
+47 1 e();
+48 1 e();
+49 1 f();
+50 1 f();
+51 1 h();
+52 1 h();
+53 1 h();
Branches
@@ -87,7 +90,7 @@ Branches
line err % true false branch
----- --- ------ ------ ------ ------
-13 *** 50 1 0 -d 't' ? :
+16 *** 50 1 0 -d 't' ? :
Covered Subroutines
@@ -95,18 +98,18 @@ Covered Subroutines
Subroutine Count Location
---------- ----- --------------
-BEGIN 1 tests/eval1:10
-BEGIN 1 tests/eval1:11
BEGIN 1 tests/eval1:13
-e 3 tests/eval1:17
-f 2 tests/eval1:25
-h 3 tests/eval1:25
+BEGIN 1 tests/eval1:14
+BEGIN 1 tests/eval1:16
+e 3 tests/eval1:20
+f 2 tests/eval1:28
+h 3 tests/eval1:28
Uncovered Subroutines
---------------------
Subroutine Count Location
---------- ----- --------------
-g 0 tests/eval1:25
+g 0 tests/eval1:28
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/eval2
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/eval2
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/eval3
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/eval3
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -38,7 +38,7 @@ tests/eval3
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -38,7 +38,7 @@ tests/eval3
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -38,7 +38,7 @@ tests/eval2
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -38,7 +38,7 @@ tests/eval2
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/exec
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2007-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2007-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -26,7 +26,7 @@ tests/fork
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/if
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/if
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -1,66 +0,0 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
-
-
------------------------------------------- ------ ------ ------ ------ ------
-File stmt bran cond sub total
------------------------------------------- ------ ------ ------ ------ ------
-tests/inc_sub 100.0 75.0 n/a 100.0 94.7
-Total 100.0 75.0 n/a 100.0 94.7
------------------------------------------- ------ ------ ------ ------ ------
-
-
-Run: ...
-Perl version: ...
-OS: ...
-Start: ...
-Finish: ...
-
-tests/inc_sub
-
-line err stmt bran cond sub code
-1 #!/bin/perl
-2
-3 1 1 use lib ();
- 1
- 1
-4
-5 BEGIN
-6 {
-7 lib->import
-8 (
-9 sub
-10 {
-11 3 100 return unless $_[1] eq "IncSub.pm";
-12 1 my $fh;
-13 *** 1 50 open $fh, "tests/IncSub.pm" or die $!;
-14 1 $fh
-15 }
-16 )
-17 1 1 }
-18
-19 1 1 use IncSub;
- 1
- 1
-20
-21 1 IncSub::check
-
-
-Branches
---------
-
-line err % true false branch
------ --- ------ ------ ------ ------
-11 100 2 1 unless $_[1] eq 'IncSub.pm'
-13 *** 50 0 1 unless open $fh, 'tests/IncSub.pm'
-
-
-Covered Subroutines
--------------------
-
-Subroutine Count Location
----------- ----- ----------------
-BEGIN 1 tests/inc_sub:17
-BEGIN 1 tests/inc_sub:19
-BEGIN 1 tests/inc_sub:3
-
-
@@ -0,0 +1,66 @@
+Reading database from ...
+
+
+------------------------------------------ ------ ------ ------ ------ ------
+File stmt bran cond sub total
+------------------------------------------ ------ ------ ------ ------ ------
+tests/inc_sub 100.0 75.0 n/a 100.0 94.7
+Total 100.0 75.0 n/a 100.0 94.7
+------------------------------------------ ------ ------ ------ ------ ------
+
+
+Run: ...
+Perl version: ...
+OS: ...
+Start: ...
+Finish: ...
+
+tests/inc_sub
+
+line err stmt bran cond sub code
+1 #!/bin/perl
+2
+3 1 1 use lib ();
+ 1
+ 1
+4
+5 BEGIN
+6 {
+7 lib->import
+8 (
+9 sub
+10 {
+11 3 100 return unless $_[1] eq "IncSub.pm";
+12 1 my $fh;
+13 *** 1 50 open $fh, "tests/IncSub.pm" or die $!;
+14 1 $fh
+15 }
+16 )
+17 1 1 }
+18
+19 1 1 use IncSub;
+ 1
+ 1
+20
+21 1 IncSub::check
+
+
+Branches
+--------
+
+line err % true false branch
+----- --- ------ ------ ------ ------
+11 100 2 1 unless $_[1] eq 'IncSub.pm'
+13 *** 50 0 1 unless open $fh, 'tests/IncSub.pm'
+
+
+Covered Subroutines
+-------------------
+
+Subroutine Count Location
+---------- ----- ----------------
+BEGIN 1 tests/inc_sub:17
+BEGIN 1 tests/inc_sub:19
+BEGIN 1 tests/inc_sub:3
+
+
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
Devel::Cover: Deleting old coverage for changed file tests/md5
@@ -27,7 +27,7 @@ tests/md5
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -19,7 +19,7 @@ Finish: ...
tests/Module1.pm
line err stmt bran cond sub code
-1 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+1 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
2
3 # This software is free. It is licensed under the same terms as Perl itself.
4
@@ -82,7 +82,7 @@ tests/module1
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -19,7 +19,7 @@ Finish: ...
tests/Module1.pm
line err stmt bran cond sub code
-1 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+1 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
2
3 # This software is free. It is licensed under the same terms as Perl itself.
4
@@ -82,7 +82,7 @@ tests/module1
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -19,7 +19,7 @@ Finish: ...
tests/Module1.pm
line err stmt bran cond sub code
-1 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+1 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
2
3 # This software is free. It is licensed under the same terms as Perl itself.
4
@@ -82,7 +82,7 @@ tests/module1
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -19,7 +19,7 @@ Finish: ...
tests/Module2.pm
line err stmt bran cond sub code
-1 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+1 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
2
3 # This software is free. It is licensed under the same terms as Perl itself.
4
@@ -82,7 +82,7 @@ tests/module2
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -19,7 +19,7 @@ Finish: ...
tests/Module2.pm
line err stmt bran cond sub code
-1 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+1 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
2
3 # This software is free. It is licensed under the same terms as Perl itself.
4
@@ -82,7 +82,7 @@ tests/module2
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -19,7 +19,7 @@ Finish: ...
tests/Module2.pm
line err stmt bran cond sub code
-1 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+1 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
2
3 # This software is free. It is licensed under the same terms as Perl itself.
4
@@ -82,7 +82,7 @@ tests/module2
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/module_ignore
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2006-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2006-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/module_ignore
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2006-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2006-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/module_ignore
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2006-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2006-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -18,7 +18,7 @@ Finish: ...
tests/Module_import.pm
line err stmt bran cond sub code
-1 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+1 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
2
3 # This software is free. It is licensed under the same terms as Perl itself.
4
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -19,7 +19,7 @@ Finish: ...
tests/Module_import.pm
line err stmt bran cond sub code
-1 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+1 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
2
3 # This software is free. It is licensed under the same terms as Perl itself.
4
@@ -49,7 +49,7 @@ tests/module_import
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -19,7 +19,7 @@ Finish: ...
tests/Module_import.pm
line err stmt bran cond sub code
-1 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+1 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
2
3 # This software is free. It is licensed under the same terms as Perl itself.
4
@@ -49,7 +49,7 @@ tests/module_import
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,5 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Devel::Cover: Can't find digest for ../../Module_import.pm
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -19,7 +19,7 @@ Finish: ...
tests/Module_import.pm
line err stmt bran cond sub code
-1 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+1 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
2
3 # This software is free. It is licensed under the same terms as Perl itself.
4
@@ -49,7 +49,7 @@ tests/module_relative
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -19,7 +19,7 @@ Finish: ...
tests/Module_import.pm
line err stmt bran cond sub code
-1 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+1 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
2
3 # This software is free. It is licensed under the same terms as Perl itself.
4
@@ -49,7 +49,7 @@ tests/module_relative
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/overload_bool
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2006-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2006-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/overload_bool
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2006-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2006-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/overloaded
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2003-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2003-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/overloaded
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2003-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2003-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
--------------------------------------------------------------- ------ ------
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
--------------------------------------------------------------- ------ ------
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
--------------------------------------------------------------- ------ ------
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
--------------------------------------------------------------- ------ ------
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/require
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/require
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/skip
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/special_blocks
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/special_blocks
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/special_blocks
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,74 +0,0 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
-
-
------------------------------------------- ------ ------ ------ ------ ------
-File stmt bran cond sub total
------------------------------------------- ------ ------ ------ ------ ------
-tests/special_blocks 100.0 n/a n/a 100.0 100.0
-Total 100.0 n/a n/a 100.0 100.0
------------------------------------------- ------ ------ ------ ------ ------
-
-
-Run: ...
-Perl version: ...
-OS: ...
-Start: ...
-Finish: ...
-
-tests/special_blocks
-
-line err stmt bran cond sub code
-1 #!/usr/bin/perl
-2
-3 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
-4
-5 # This software is free. It is licensed under the same terms as Perl itself.
-6
-7 # The latest version of this software should be available from my homepage:
-8 # http://www.pjcj.net
-9
-10 1 1 use strict;
- 1
- 1
-11 1 1 use warnings;
- 1
- 1
-12
-13 1 my $x;
-14
-15 BEGIN
-16 {
-17 1 1 $x++
-18 }
-19
-20 CHECK
-21 {
-22 1 1 $x++
-23 }
-24
-25 INIT
-26 {
-27 1 1 $x++
-28 }
-29
-30 END
-31 {
-32 1 1 $x++
-33 }
-34
-35 1 $x++;
-
-
-Covered Subroutines
--------------------
-
-Subroutine Count Location
----------- ----- -----------------------
-BEGIN 1 tests/special_blocks:10
-BEGIN 1 tests/special_blocks:11
-BEGIN 1 tests/special_blocks:17
-CHECK 1 tests/special_blocks:22
-END 1 tests/special_blocks:32
-INIT 1 tests/special_blocks:27
-
-
@@ -0,0 +1,74 @@
+Reading database from ...
+
+
+------------------------------------------ ------ ------ ------ ------ ------
+File stmt bran cond sub total
+------------------------------------------ ------ ------ ------ ------ ------
+tests/special_blocks 100.0 n/a n/a 100.0 100.0
+Total 100.0 n/a n/a 100.0 100.0
+------------------------------------------ ------ ------ ------ ------ ------
+
+
+Run: ...
+Perl version: ...
+OS: ...
+Start: ...
+Finish: ...
+
+tests/special_blocks
+
+line err stmt bran cond sub code
+1 #!/usr/bin/perl
+2
+3 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
+4
+5 # This software is free. It is licensed under the same terms as Perl itself.
+6
+7 # The latest version of this software should be available from my homepage:
+8 # http://www.pjcj.net
+9
+10 1 1 use strict;
+ 1
+ 1
+11 1 1 use warnings;
+ 1
+ 1
+12
+13 1 my $x;
+14
+15 BEGIN
+16 {
+17 1 1 $x++
+18 }
+19
+20 CHECK
+21 {
+22 1 1 $x++
+23 }
+24
+25 INIT
+26 {
+27 1 1 $x++
+28 }
+29
+30 END
+31 {
+32 1 1 $x++
+33 }
+34
+35 1 $x++;
+
+
+Covered Subroutines
+-------------------
+
+Subroutine Count Location
+---------- ----- -----------------------
+BEGIN 1 tests/special_blocks:10
+BEGIN 1 tests/special_blocks:11
+BEGIN 1 tests/special_blocks:17
+CHECK 1 tests/special_blocks:22
+END 1 tests/special_blocks:32
+INIT 1 tests/special_blocks:27
+
+
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/statement
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/subs_only
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2006-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2006-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/t0
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/t0
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/t0
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/t1
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/t1
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/t2
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/t2
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/t2
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/trivial
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -1,5 +1,5 @@
2 unmatched uncoverable comments not found at end of tests/uncoverable
-Reading database from /home/pjcj/g/perl/dc/cover_db
+Reading database from ...
------------------------------------------ ------ ------ ------ ------ ------
@@ -21,7 +21,7 @@ tests/uncoverable
line err stmt bran cond sub code
1 #!/usr/bin/perl
2
-3 # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3 # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
4
5 # This software is free. It is licensed under the same terms as Perl itself.
6
@@ -0,0 +1,94 @@
+2 unmatched uncoverable comments not found at end of tests/uncoverable
+Reading database from ...
+
+
+------------------------------------------ ------ ------ ------ ------ ------
+File stmt bran cond sub total
+------------------------------------------ ------ ------ ------ ------ ------
+tests/uncoverable 100.0 100.0 100.0 100.0 100.0
+Total 100.0 100.0 100.0 100.0 100.0
+------------------------------------------ ------ ------ ------ ------ ------
+
+
+Run: ...
+Perl version: ...
+OS: ...
+Start: ...
+Finish: ...
+
+tests/uncoverable
+
+line err stmt bran cond sub code
+1 #!/usr/bin/perl
+2
+3 # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
+4
+5 # This software is free. It is licensed under the same terms as Perl itself.
+6
+7 # The latest version of this software should be available from my homepage:
+8 # http://www.pjcj.net
+9
+10 # __COVER__ uncoverable_file tests/.uncoverable
+11
+12 1 my $x = 1;
+13 1 my $y = 1;
+14
+15 # uncoverable branch true
+16 # uncoverable condition left
+17 # uncoverable condition false
+18 1 - 50 - 33 if ($x && !$y)
+19 {
+20 -0 $x++; # uncoverable statement
+21 # uncoverable statement
+22 -0 z();
+23 }
+24
+25 # uncoverable branch true
+26 # uncoverable condition left
+27 # uncoverable condition right
+28 1 - 50 - 33 if (!$x || !$y)
+29 {
+30 # uncoverable statement count:1
+31 # uncoverable statement count:2
+32 -0 b(); b();
+ -0
+33 }
+34
+35 sub z
+36 {
+37 # uncoverable subroutine
+38 -0 -0 $y++; # uncoverable statement
+39 }
+40
+41 # uncoverable statement
+42 # uncoverable subroutine
+
+
+Branches
+--------
+
+line err % true false branch
+----- --- ------ ------ ------ ------
+18 - 50 -0 1 if ($x and not $y)
+28 - 50 -0 1 unless ($x and $y)
+
+
+Conditions
+----------
+
+and 3 conditions
+
+line err % !l l&&!r l&&r expr
+----- --- ------ ------ ------ ------ ----
+18 - 33 -0 1 -0 $x and not $y
+28 - 33 -0 -0 1 $x and $y
+
+
+Uncovered Subroutines
+---------------------
+
+Subroutine Count Location
+---------- ----- --------------------
+z -0 tests/uncoverable:38
+
+
@@ -1,4 +1,4 @@
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -1,4 +1,4 @@
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -1,4 +1,4 @@
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -1,4 +1,4 @@
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -1,4 +1,4 @@
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -1,4 +1,4 @@
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -1,4 +1,4 @@
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -1,4 +1,4 @@
-# Copyright 2005-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2005-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -12,8 +12,8 @@ use warnings;
use File::Copy;
-use Devel::Cover::Inc 0.65;
-use Devel::Cover::Test 0.65;
+use Devel::Cover::Inc 0.66;
+use Devel::Cover::Test 0.66;
my $base = $Devel::Cover::Inc::Base;
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -1,12 +1,15 @@
#!/usr/bin/perl
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
# The latest version of this software should be available from my homepage:
# http://www.pjcj.net
+# __COVER__ skip_test $] < 5.008 || $^O eq "cygwin"
+# __COVER__ skip_reason Busted on 5.6 and cygwin
+
use strict;
use warnings;
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -1,6 +1,6 @@
#!/usr/bin/perl -l
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -1,12 +1,15 @@
#!/usr/bin/perl
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
# The latest version of this software should be available from my homepage:
# http://www.pjcj.net
+# __COVER__ skip_test $] == 5.010
+# __COVER__ skip_reason One test fails only under make test on 5.10.0 unhreaded
+
use strict;
use warnings;
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -10,7 +10,7 @@
use strict;
use warnings;
-use Devel::Cover::Test 0.65;
+use Devel::Cover::Test 0.66;
my $run_test = sub
{
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -10,7 +10,7 @@
use strict;
use warnings;
-use Devel::Cover::Test 0.65;
+use Devel::Cover::Test 0.66;
my $run_test = sub
{
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2007-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2007-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -12,8 +12,8 @@ use warnings;
use File::Copy;
-use Devel::Cover::Inc 0.65;
-use Devel::Cover::Test 0.65;
+use Devel::Cover::Inc 0.66;
+use Devel::Cover::Test 0.66;
my $base = $Devel::Cover::Inc::Base;
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2006-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2006-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2006-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2006-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2003-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2003-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2006-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2006-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
# This software is free. It is licensed under the same terms as Perl itself.
@@ -0,0 +1,102 @@
+# Copyright 1999 - 2000 by Paul Johnson (paul@pjcj.net)
+
+# documentation at __END__
+
+# Original author: Paul Johnson
+# Created: Fri 12 Mar 1999 10:25:51 am
+
+use strict;
+
+require 5.004;
+
+package System;
+
+use Exporter ();
+use vars qw($VERSION @ISA @EXPORT);
+
+$VERSION = do { my @r = (q$Revision: 1.1 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker
+
+@ISA = ("Exporter");
+@EXPORT = ("sys", "dsys");
+
+my $Command = 0;
+my $Errors = 0;
+my $Verbose = 0;
+
+sub import
+{
+ my $class = shift;
+ my $args = "@_";
+ $Command = $args =~ /\bcommand\b/i;
+ $Errors = $args =~ /\berror\b/i;
+ $Verbose = $args =~ /\bverbose\b/i;
+ $Command ||= $Verbose;
+ $Errors ||= $Verbose;
+ $class->export_to_level(1, "sys" ) if $args =~ /\bsys\b/i;
+ $class->export_to_level(1, "dsys") if $args =~ /\bdsys\b/i;
+}
+
+sub sys
+{
+ my (@command) = @_;
+ local $| = 1;
+ print "@command"; # if $Command;
+ my $rc = 0xffff & system @command;
+ print "\n" if $Command && !$rc && !$Verbose;
+ ret($rc);
+}
+
+sub dsys
+{
+ die "@_ failed" if sys @_;
+}
+
+sub ret
+{
+ my ($rc) = @_;
+ printf " returned %#04x: ", $rc if $Errors && $rc;
+ if ($rc == 0)
+ {
+ print "ran with normal exit\n" if $Verbose;
+ }
+ elsif ($rc == 0xff00)
+ {
+ print "command failed: $!\n" if $Errors;
+ }
+ elsif ($rc > 0x80)
+ {
+ $rc >>= 8;
+ print "ran with non-zero exit status $rc\n" if $Errors;
+ }
+ else
+ {
+ print "ran with " if $Errors;
+ if ($rc & 0x80)
+ {
+ $rc &= ~0x80;
+ print "coredump from " if $Errors;
+ }
+ print "signal $rc\n" if $Errors;
+ }
+ $rc;
+}
+
+1
+
+__END__
+
+=head1 NAME
+
+System - run a system command and check the result
+
+=head1 SYNOPSIS
+
+use System "command, verbose, errors";
+sys qw(ls -al);
+
+=head1 DESCRIPTION
+
+The sys function runs a system command, checks result, and comments on
+it.
+
+=cut
@@ -0,0 +1,1074 @@
+#!/usr/bin/perl
+
+# Copyright 2001-2010, Paul Johnson (paul@pjcj.net)
+
+# This software is free. It is licensed under the same terms as Perl itself.
+
+# The latest version of this software should be available from my homepage:
+# http://www.pjcj.net
+
+use strict;
+use warnings;
+
+require 5.010_001;
+
+# use autodie;
+
+use System "sys:dsys: command, error";
+
+my @opt = qw( perl modules
+ zlib gd openssl nagios
+ apache mod_perl fastcgi
+ git subversion postgres
+ coverage all );
+
+my $Usage =
+ "Usage: $0 /src/dir perl_version /installation [" . join("|", @opt) . "]\n";
+
+my $Src_dir = shift || die $Usage;
+my $Perl_src = shift || die $Usage;
+my $Installation = shift || die $Usage;
+my $Options = "@ARGV";
+ $Options = "dry" if $Options =~ /\bdry\b/;
+ $Options = "@opt" if $Options =~ /\ball\b/;
+ pop @opt for 1 .. 4;
+ $Options = "@opt" unless $Options;
+
+my $Sw;
+my $Perl;
+
+my $UBS = -d "/opt/bin";
+if ($UBS)
+{
+ $ENV{PATH} = "/usr/bin:/usr/sbin:/bin:/sbin:/usr/ucb:" .
+ "/usr/ccs/bin:/usr/ccs/lib:/usr/openwin/bin";
+ $ENV{ORACLE_HOME} = `op chile_db oracle_home`;
+ $ENV{ORACLE_HOME} ||= "/export/opt/p2orstree/10.1.0.4";
+ $ENV{ORACLE_HOME} = "/app/ora/p2orstree/10.1.0.4"
+ unless -e $ENV{ORACLE_HOME};
+ $ENV{LD_LIBRARY_PATH} = "$ENV{ORACLE_HOME}/lib32:/usr/ucblib";
+}
+else
+{
+ # $ENV{ORACLE_HOME} = "/usr/lib/oracle/xe/app/oracle/product/10.2.0/server";
+ # die "ORACLE_HOME needs to be set!" unless exists $ENV{ORACLE_HOME};
+ # die "ORACLE_HOME is invalid!" unless -d $ENV{ORACLE_HOME};
+ # $ENV{LD_LIBRARY_PATH} = "$ENV{LD_LIBRARY_PATH}:$ENV{ORACLE_HOME}/lib";
+}
+
+my $Top = `pwd`;
+chomp $Top;
+my $Build = "$Top/build";
+my $Blead = $Perl_src eq "blead";
+my $Maint = $Perl_src eq "maint";
+
+sub get_src
+{
+ my ($package, $dir) = @_;
+ $dir ||= $Src_dir;
+ my $src = $package;
+ $src = "$package.tar.gz" unless -f $src;
+ $src = "$package.tar.bz2" unless -f $src;
+ $src = "$dir/$package" unless -f $src;
+ $src = "$dir/$package.tar.gz" unless -f $src;
+ $src = "$dir/$package.tar.bz2" unless -f $src;
+ $src = $package unless -f $src;
+ # die "Can't find $package in $dir ($Src_dir)\n" unless -f $src;
+ return $src;
+}
+
+sub building ($)
+{
+ my ($option) = @_;
+ return $Options =~ /\b$option\b/i;
+}
+
+sub uncompress
+{
+ $_[0] =~ /2$/ ? "bzcat" : $UBS ? "gzcat" : "zcat"
+}
+
+sub build ($$$)
+{
+ my ($module, $src_dir, $opts) = @_;
+
+ chdir $Build or die "Can't chdir $Build: $!";
+ my $src = get_src($module, $src_dir);
+
+ $opts =
+ {
+ "unpack" => sub { dsys uncompress($src) . " $src | tar xf -" },
+ dir => sub { $src =~ m|.*/(.*)\.tar\.| && $1 },
+ config => sub { dsys "$Perl Makefile.PL" },
+ make => sub { dsys "make" },
+ test => sub { sys "make test" }, # some modules fail their tests...
+ install => sub { dsys "make install" },
+ %$opts
+ };
+
+ print "build $module\n";
+ my $dir = $opts->{dir}->();
+ $opts->{"unpack"}->();
+ chdir $dir or die "Can't chdir $dir: $!";
+ $opts->{config}->();
+ $opts->{make}->();
+ $opts->{test}->();
+ $opts->{install}->();
+ print "built $module\n";
+}
+
+sub feed ($$)
+{
+ my ($command, $input) = @_;
+ open my $c, "| $command" or die "Cannot run $command:$!\n";
+ print $c $input;
+ close $c or die "Cannot run $command:$!\n";
+}
+
+sub main ()
+{
+ dsys "rm -rf $Build";
+ mkdir $Build, 0750 or die "Can't mkdir $Build: $!";
+ $ENV{HOME} = $Sw;
+ my $gmake = "/app/home/t136103/g/sw/bin/gmake";
+ $gmake = "make" unless -e $gmake;
+
+ if (building "perl")
+ {
+ chdir $Build or die "Can't chdir $Build: $!";
+ dsys "rm -rf $Sw/*";
+
+ if ($Blead)
+ {
+ my $perl_dir = "/usr/local/pkg/bleadperl";
+ mkdir $perl_dir;
+ chdir $perl_dir or die "Can't chdir $perl_dir: $!";
+ dsys "rsync -avz --delete " .
+ "rsync://ftp.activestate.com/perl-current/ .";
+ }
+ elsif ($Maint)
+ {
+ my $perl_dir = "$Installation/tmp/maintperl";
+ dsys "mkdir -p $perl_dir";
+ chdir $perl_dir or die "Can't chdir $perl_dir: $!";
+ if (1)
+ {
+ dsys "rsync -avz --delete " .
+ "rsync://ftp.linux.activestate.com/perl-5.8.x/ .";
+ }
+ else
+ {
+ my $url = "http://git.develooper.com/?p=perl.git;a=snapshot;" .
+ "h=maint-5.10;sf=tgz";
+ my $src = "maint.tar.gz";
+ dsys "rm -f *gz";
+ dsys "wget '$url'";
+ dsys "mv *gz $src";
+ dsys uncompress($src) . " $src | tar xf -";
+ $perl_dir .= "/perl";
+ chdir $perl_dir or die "Can't chdir $perl_dir: $!";
+ }
+ }
+ else
+ {
+ dsys uncompress($Perl_src) . " $Perl_src | tar xf -";
+ my ($perl_dir) = $Perl_src =~ m!.*/(.*)\.tar\.(gz|bz2)$!;
+ chdir $perl_dir or die "Can't chdir $perl_dir: $!";
+ }
+
+ my @opts =
+ (
+ "-Dperladmin=" .
+ ($UBS ? "'paul-za.johnson\@ubs.com'" : "'paul\@pjcj.net'"),
+ "-Dprefix=$Sw",
+ );
+ push @opts, "-Dusedevel" if $Blead;
+ push @opts,
+ (
+ # -A, not -D
+ "-Dccflags='-fprofile-arcs -ftest-coverage'",
+ "-Dldflags='-fprofile-arcs -ftest-coverage'",
+ "-Doptimize='-g -O0'",
+ ) if building "Xcoverage";
+
+ dsys "sh ./Configure -des @opts";
+ dsys "make" . (building "Xcoverage" ? " perl.gcov" : "");
+ sys "make test";
+ dsys "make install";
+
+ my ($version) = glob "${Perl}5.*";
+ symlink $version, $Perl;
+
+ $Options =~ s/\bperl\b//;
+ }
+
+ chdir $Top or die "Can't chdir $Top: $!";
+ my $restart = "perl -le 'print q()' '' | " .
+ "$Perl $0 $Src_dir $Perl_src $Installation $Options";
+ print "<$restart [$^X] [$Perl]>\n";
+ exec $restart if $^X !~ /$Perl/;
+
+ if (building "zlib")
+ {
+ my $zlib = "zlib-1.2.3";
+ build $zlib,
+ $Src_dir,
+ {
+ config => sub { dsys "./configure" },
+ install => sub { dsys "make install prefix=$Sw" },
+ };
+ }
+
+ if (building "gd")
+ {
+ my $jpeg = "jpegsrc.v6b";
+ my $jpegdir = "jpeg-6b";
+ build $jpeg,
+ $Src_dir,
+ {
+ dir => sub { $jpegdir },
+ config => sub { dsys "./configure --prefix=$Sw" },
+ install => sub
+ {
+ dsys "make install install-lib install-headers";
+ },
+ };
+
+ my $png = "libpng-1.2.34";
+ build $png,
+ $Src_dir,
+ {
+ config => sub
+ {
+ my $ext = $UBS ? "32sunu" : "linux";
+ dsys "cp scripts/makefile.$ext Makefile";
+ dsys "perl -pi -e 's|^(prefix=).*|\$1$Sw|' Makefile";
+ dsys "make" .
+ " ZLIBLIB=$Sw/lib" .
+ " ZLIBINC=$Sw/include";
+ }
+ };
+
+ my $gd = "gd-2.0.35";
+ build $gd,
+ $Src_dir,
+ {
+ config => sub
+ {
+ dsys "./configure" .
+ " --prefix=$Sw" .
+ " --with-jpeg=$Sw" .
+ " --with-png=$Sw";
+ }
+ };
+ }
+
+ if (building "openssl")
+ {
+ # my $openssl = "openssl-0.9.8g"; # Crypt::SSLeay fails
+ my $openssl = "openssl-0.9.7" . ($UBS ? "g" : "j"); # Solaris fails
+ # my $openssl = "openssl-0.9.8j";
+ build $openssl,
+ $Src_dir,
+ { config => sub { dsys "./config --prefix=$Sw shared" } };
+ }
+
+ $ENV{LD_PRELOAD} = "$Sw/lib/libssl.so" if -e "$Sw/lib/libssl.so" && !$UBS;
+
+ # my $apache = "apache_1.3.41";
+ my $apache = "httpd-2.2.11";
+
+ if ($apache =~ /apache/)
+ {
+ my $mod_perl = "mod_perl-1.30";
+
+ build $apache,
+ $Src_dir,
+ {
+ config => sub {},
+ make => sub {},
+ test => sub {},
+ install => sub {},
+ }
+ if building "apache";
+
+ build $mod_perl,
+ $Src_dir,
+ {
+ config => sub
+ {
+ dsys "$Perl Makefile.PL" .
+ " APACHE_SRC=../perl/src" .
+ " DO_HTTPD=1 USE_APACI=1 PREP_HTTPD=1 EVERYTHING=1";
+ },
+ }
+ if building "mod_perl";
+
+ build $apache,
+ $Src_dir,
+ {
+ "unpack" => sub {},
+ config => sub
+ {
+ dsys "./configure" .
+ " --prefix=$Sw" .
+ " --enable-module=so" .
+ " --enable-module=rewrite" .
+ " --activate-module=src/modules/perl/libperl.a";
+ },
+ }
+ if building "apache";
+ }
+ else
+ {
+ my $mod_perl = "mod_perl-2.0.4";
+
+ build $apache,
+ $Src_dir,
+ {
+ config => sub
+ {
+ dsys "./configure" .
+ " --prefix=$Sw" .
+ " --with-z=$Sw" .
+ " --with-ssl=$Sw" .
+ " --enable-mods-shared='ssl'" .
+ " --enable-modules='dav rewrite deflate headers'";
+ },
+ }
+ if building "apache";
+
+ build $mod_perl,
+ $Src_dir,
+ {
+ config => sub
+ {
+ dsys "$Perl Makefile.PL MP_APXS=$Sw/bin/apxs";
+ },
+ }
+ if building "mod_perl";
+ }
+
+ if (building "fastcgi" && -e "$Sw/bin/httpd")
+ {
+ my $fastcgi = "mod_fastcgi-2.4.6";
+
+ build $fastcgi,
+ $Src_dir,
+ {
+ config => sub
+ {
+ dsys "cp Makefile.AP2 Makefile";
+ {
+ local ($^I, @ARGV) = (".bak", "Makefile");
+ while (<>)
+ {
+ s|/usr/local/apache2|$Sw|;
+ print;
+ }
+ }
+ },
+ test => sub {},
+ }
+ }
+
+ if (building "git")
+ {
+ my $git = "git-1.6.3.3";
+
+ build $git,
+ $Src_dir,
+ {
+ config => sub { dsys "./configure --prefix=$Sw" },
+ make => sub { dsys "$gmake all" },
+ test => sub { dsys "$gmake test" },
+ test => sub { dsys "echo $gmake test" },
+ install => sub { dsys "$gmake install" },
+ }
+ }
+
+ if (building "subversion")
+ {
+ my $neon = "neon-0.25.5"; # subversion needs this version
+ # build $neon,
+ # $Src_dir,
+ # {
+ # config => sub
+ # {
+ # dsys "./configure" .
+ # " --prefix=$Sw" .
+ # ($UBS ? "" : " --enable-shared") .
+ # " --with-ssl=openssl" .
+ # " --with-libs=$Sw";
+ # },
+ # };
+
+ my $swig = "swig-1.3.29"; # subversion needs a version after 1.3.23
+ build $swig,
+ $Src_dir,
+ {
+ config => sub
+ {
+ dsys "./configure" .
+ " --prefix=$Sw" .
+ " --with-perl5=$Perl"
+ },
+ make => sub { dsys "$gmake" },
+ test => sub {},
+ install => sub { dsys "$gmake install" },
+ };
+
+ die "Can't find swig" unless `which swig`;
+
+ my $subversion = "subversion-1.4.5";
+ build $subversion,
+ $Src_dir,
+ {
+ config => sub
+ {
+ dsys "./configure" .
+ " --prefix=$Sw" .
+ " --without-berkeley-db" .
+ ($UBS ? " --without-ssl --without-zlib"
+ : " --with-ssl --with-zlib") .
+ " --enable-shared" .
+ " --with-apxs=$Sw/bin/apxs" .
+ " --with-libs=$Sw" .
+ " PERL=$Perl";
+ },
+ make => sub
+ {
+ dsys "make";
+ dsys "make swig-pl";
+ },
+ test => sub
+ {
+ dsys "make check-swig-pl";
+ },
+ install => sub
+ {
+ dsys "make install";
+ dsys "make install-swig-pl";
+ },
+ };
+ }
+
+ if (building "nagios")
+ {
+ my $nagios = "nagios-3.0.6";
+ build $nagios,
+ $Src_dir,
+ {
+ config => sub
+ {
+ my $user = getpwuid($<);
+ my $group = getgrgid($();
+ {
+ local ($^I, @ARGV) = (".bak", "cgi/status.c");
+ while (<>)
+ {
+ s/(int max_grid_width=)8;/${1}135;/;
+ s/(current_item)\+\+;/${1}+=strlen\(temp_servicestatus->description\)+1;/;
+ print;
+ }
+ }
+ sys "chdir common && ln -s ../base/snprintf.o .";
+ dsys "./configure" .
+ " --prefix=$Sw" .
+ " --with-htmurl=/chile_monitor" .
+ " --with-cgiurl=/chile_monitor/cgi-bin" .
+ " --with-nagios-user=$user" .
+ " --with-nagios-group=$group" .
+ " --with-gd-inc=$Sw/include" .
+ " --with-gd-lib=$Sw/lib";
+ },
+ make => sub
+ {
+ sys "make all install";
+ },
+ };
+
+ my $plugins = "nagios-plugins-1.4.13";
+ build $plugins,
+ $Src_dir,
+ {
+ config => sub
+ {
+ dsys "CFLAGS=-lm ./configure" .
+ " --prefix=$Sw" .
+ " --with-cgiurl=/chile_monitor/cgi-bin"
+ },
+ test => sub {},
+ };
+ }
+
+ if (building "postgres")
+ {
+ my $postgres = "postgresql-8.4.0";
+ build $postgres,
+ $Src_dir,
+ {
+ config => sub
+ {
+ dsys "./configure" .
+ " --prefix=$Sw" .
+ " --with-pgport=5433" .
+ " --without-readline" .
+ " --with-perl";
+ },
+ make => sub { dsys "$gmake" },
+ test => sub { dsys "$gmake check" },
+ install => sub { dsys "$gmake install-strip" },
+ };
+ }
+
+
+ if (building "modules")
+ {
+ my @modules =
+ qw(
+ Bundle::CPAN
+ Bundle::LWP
+ CPAN::Mini
+
+ LWP
+ ExtUtils::ParseXS
+ Module::Build
+ Test::Pod
+ Test::Pod::Coverage
+ Archive::Tar
+ Data::Page
+ Date::Calc
+ Apache::Compress
+ Apache::Filter
+ Apache::Session
+ Apache::Test
+ Data::UUID
+ DateTime
+ Class::Trigger
+ DBIx::ContextualFetch
+ DBIx::Class
+ DBIx::Class::InflateColumn::DateTime
+ DBIx::ProcedureCall
+ Image::Size
+ Template
+ Number::Format
+ Template::Plugin::Number::Format
+ HTML::Lint
+ JSON
+ Test::JSON
+ HTTP::Response::Encoding
+ WWW::Mechanize
+ Test::WWW::Mechanize
+ PPI::HTML
+ Perl::Tidy
+ Devel::Cover
+ Shell::Source
+ B::Utils
+ Log::Log4perl
+ DBIx::Log4perl
+ Net::Server
+ XXNet::IRC
+ File::Find::Rule
+ Proc::ProcessTable
+ Text::Template
+ Data::Dump::Streamer
+ Spreadsheet::ParseExcel
+ Email::Send
+ Text::Table
+ Text::TabularDisplay
+ C::Scan
+ Cache::FastMmap
+
+ XXCGI::Simple::Cookie
+ XXData::Dump
+ XXModule::Pluggable
+
+ DBD:Pg
+ DBIx::Class::Schema::Loader::DBI::Pg
+
+ MooseX::Declare
+
+ Catalyst
+ Catalyst::Controller::FormBuilder
+ Catalyst::Devel
+ Catalyst::Engine::Apache
+ Catalyst::Engine::HTTP::POE
+ Catalyst::Model::DBIC::Schema
+ Catalyst::Plugin::Authentication
+ Catalyst::Plugin::Authentication::Store::DBIx::Class
+ Catalyst::Plugin::Authorization::Roles
+ Catalyst::Plugin::ConfigLoader
+ Catalyst::Plugin::JSONRPC
+ Catalyst::Plugin::Server::XMLRPC
+ Catalyst::Plugin::Session::State::Cookie
+ Catalyst::Plugin::Session::Store::FastMmap
+ Catalyst::Plugin::StackTrace
+ Catalyst::Plugin::Static::Simple
+ Catalyst::Plugin::XMLRPC
+ Catalyst::View::JSON
+ Catalyst::View::TT
+
+ FCGI
+ FCGI::ProcManager
+ SOAP::Lite
+ Sort::Versions
+ Alien::SeleniumRC
+ Test::WWW::Selenium
+ Test::WWW::Mechanize::Catalyst
+ HTML::TagCloud
+
+ Test::Exception
+ Test::Warn
+
+ Date::Parse
+
+ Net::SSLeay
+ ); my @no = qw(
+
+ DBIx::Class::Schema::Loader::DBI::Oracle
+
+ XXBundle::Test XX_seems_to_want_to_reinstall_perl_itself
+ Plagger
+ XXBundle::BioPerl
+ XXBio::Perl
+ S/SE/SENDU/bioperl-1.5.2_102.tar.gz
+ Tk
+ Regexp::Common
+ XXBundle::POE::All
+ XXBundle::Email
+ XXBundle::Phalanx
+ XXBundle::HTML::Mason
+ XXBundle::Slash
+ XXBundle::RT
+ XXBundle::Bricolage
+ XXBundle::BricolagePlus
+
+ XXPhalanx
+ Test::Harness
+ Test::Reporter
+ Test::Builder
+ Test::Builder::Tester
+ Sub::Uplevel
+ Test::Exception
+ Test::Tester
+ Test::NoWarnings
+ Test::Tester
+ Pod::Escapes
+ Pod::Simple
+ Test::Pod
+ YAML
+ Cwd
+ Archive::Tar
+ Module::Build
+ Devel::Symdump
+ Pod::Coverage
+ Test::Pod::Coverage
+ Compress::Zlib
+ IO::Zlib
+ Archive::Zip
+ Archive::Tar
+ Storable
+ Digest::MD5
+ URI
+ HTML::Tagset
+ HTML::Parser
+ LWP
+ IPC::Run
+ CPANPLUS
+ DBI
+ XXDBD::mysql
+ GD
+ MIME::Base64
+ XXNet::SSLeay
+ Net::LDAP
+ XML::Parser
+ Apache::ASP
+ CGI
+ Date::Manip
+ DBD::Oracle
+ XXDBD::Pg
+ Digest::SHA1
+ Digest::HMAC
+ HTML::Tagset
+ HTML::Template
+ Net::Cmd
+ Mail::Mailer
+ MIME::Body
+ Net::DNS
+ Time::HiRes
+ Apache::DBI
+ Apache::Session
+ Apache::Test
+ AppConfig
+ App::Info
+ XXAuthen::PAM
+ Authen::SASL
+ XXBerkeleyDB
+ Bit::Vector
+ Carp::Clan
+ Chart::Bars
+ Class::DBI
+ Compress::Zlib::Perl
+ Config::IniFiles
+ Convert::ASN1
+ Convert::TNEF
+ Convert::UUlib
+ CPAN
+ Crypt::CBC
+ Crypt::DES
+ Crypt::SSLeay
+ Data::Dumper
+ Date::Calc
+ DateTime
+ XXDBD::DB2
+ XXDBD::ODBC
+ XXDBD::SQLite
+ XXDBD::Sybase
+ Device::SerialPort
+ Digest::SHA
+ Encode
+ Event
+ Excel::Template
+ Expect
+ ExtUtils::MakeMaker
+ File::Scan
+ File::Spec
+ File::Tail
+ File::Temp
+ GD::Graph
+ GD::Text
+ Getopt::Long
+ XXHTML::Mason XX_wants_to_install:mod_perl_1
+ Image::Size
+ IMAP::Admin
+ Parse::RecDescent
+ Inline
+ IO
+ Spiffy
+ IO::All
+ IO::Socket::SSL
+ IO::String
+ IO::Stringy
+ XML::SAX2Perl
+ Mail::Audit
+ XXMail::ClamAV
+ Mail::Sendmail
+ Math::Pari
+ MD5
+ MIME::Lite
+ MP3::Info
+ Net::Daemon
+ Net::FTP::Common
+ Net::Ping
+ Net::Server
+ Net::SNMP
+
+ XX_install_these_four_modules_in_order_before_Net::SSH::Perl
+ XX_Net::SSH::Perl_requires_Crypt_DH
+ XX_which_is_S_L_O_W_without_Math::BigInt::GMP
+ Math::BigInt
+ Math::BigRat
+ bignum
+ Math::BigInt::GMP
+ XXNet::SSH::Perl
+ XX_bah_the_whole_thing_is_broken___
+
+ Net::Telnet
+ OLE::Storage_Lite
+ Params::Validate
+ XXImage::Magick
+ RPC::PlServer
+ Pod::Parser
+ POE
+ XXSNMP
+ SOAP::Lite
+ Spreadsheet::ParseExcel
+ Spreadsheet::WriteExcel
+ Spreadsheet::WriteExcelXML
+ Storable
+ Template
+ Term::ReadKey
+ Term::ReadLine::Perl
+ Text::Iconv
+ Date::Parse
+ Time::Timezone
+ Unicode::String
+ Unix::Syslog
+ XXVerilog::Parser
+ WWW::Mechanize
+ XML::DOM
+ XML::Generator
+ XML::LibXML
+ XML::NamespaceSupport
+ XML::SAX
+ XML::Simple
+ XML::Writer
+ );
+ # push @modules, "Apache::Request" if $apache !~ /apache/;
+ push @modules, "Crypt::SSLeay" if -e "$Sw/bin/openssl";
+ push @modules, "DBD::Oracle",
+ "DBIx::Class::Schema::Loader::DBI::Oracle",
+ if exists $ENV{ORACLE_HOME} && -d $ENV{ORACLE_HOME};
+ # push @modules, "MQSeries" if $UBS;
+ push @modules, "H/HB/HBIERSMA/MQSeries-1.28-b.tar.gz" if $UBS;
+ push @modules, "SVN::Simple::Edit", "SVN::Mirror", "FreezeThaw", "SVK",
+ "Exception::Class", "SVN::Web"
+ if -e "$Sw/bin/svn";
+
+ for (qw( XX/mnt/wesley/pjcj/g/perl/svk/dc
+ XX/home/pjcj/g/perl/dc
+ XX/bcy/pidjjq/dc
+ /home/pjcj/g/work/Devel-Cover
+ ))
+ {
+ push @modules, $_ if -e;
+ }
+
+ my $config =
+ {
+
+ LWP => { test => sub {} },
+ "Apache::Compress" => { test => sub {} },
+ "Apache::Filter" => { test => sub {} },
+ "Apache::Request" => { test => sub {} },
+ "Apache::TEST" => { test => sub {} },
+ "Data::Dump::Streamer" =>
+ { config => sub { dsys "$Perl Makefile.PL DDS" } },
+ "Crypt::SSLeay" =>
+ {
+ config => sub
+ {
+ # dsys qq($Perl -pi -e 's|(my \\\@POSSIBLE_SSL_DIRS = ).*|).
+ # qq(\$1"$Sw";|' Makefile.PL);
+ dsys "$Perl Makefile.PL --lib=$Sw/include"
+ }
+ },
+ "SVN::Web" =>
+ { config => sub { dsys "yes n | $Perl Makefile.PL" } },
+ $UBS ?
+ (
+ "DBD::Oracle" =>
+ { config => sub { dsys "$Perl Makefile.PL -m $ENV{ORACLE_HOME}".
+ "/rdbms/lib/ins_rdbms.mk" } },
+ ) : ()
+ };
+
+ my $cpandir = "http://cpan.wanadoo.nl/";
+ for my $d (qw(
+ /app/home/t136103/g/build/src/cpan
+ /home/pidjjq/g/src/cpan
+ /usr/local/pkg/cpan
+ /home/pjcj/g/download/cpan ))
+ {
+ $cpandir = "file://$d/" if -d $d;
+ }
+ my $tar = $UBS ? "/app/home/t136103/g/sw/bin/gnutar" : "/bin/tar";
+ my $f = "$Sw/.cpan";
+ -d $f or mkdir $f, 0750 or die "Can't mkdir $f: $!";
+ $f .= "/CPAN";
+ -d $f or mkdir $f, 0750 or die "Can't mkdir $f: $!";
+ $f .= "/MyConfig.pm";
+ open my $fh, ">", $f or die "Can't open $f: $!";
+ print $fh <<EOF;
+\$CPAN::Config = {
+ 'build_cache' => q[100000],
+ 'build_dir' => q[$Sw/.cpan/build],
+ 'cache_metadata' => q[1],
+ 'cpan_home' => q[$Sw/.cpan],
+ 'dontload_hash' => { },
+ 'ftp' => q[/usr/bin/ftp],
+ 'ftp_proxy' => q[],
+ 'getcwd' => q[cwd],
+ 'gpg' => q[/usr/bin/gpg],
+ 'gzip' => q[/bin/gzip],
+ 'histfile' => q[$Sw/.cpan/histfile],
+ 'histsize' => q[100],
+ 'http_proxy' => q[],
+ 'inactivity_timeout' => q[0],
+ 'index_expire' => q[1],
+ 'inhibit_startup_message' => q[0],
+ 'keep_source_where' => q[$Sw/.cpan_sources],
+ 'lynx' => q[/usr/bin/lynx],
+ 'make' => q[/usr/bin/make],
+ 'make_arg' => q[],
+ 'make_install_arg' => q[],
+ 'makepl_arg' => q[],
+ 'ncftp' => q[],
+ 'ncftpget' => q[],
+ 'no_proxy' => q[],
+ 'pager' => q[less],
+ 'prerequisites_policy' => q[follow],
+ 'scan_cache' => q[atstart],
+ 'shell' => q[/bin/zsh],
+ 'tar' => q[$tar],
+ 'term_is_latin' => q[1],
+ 'unzip' => q[/usr/bin/unzip],
+ 'urllist' => [q[$cpandir]],
+ 'wget' => q[/usr/bin/wget],
+ 'auto_commit' => q[1],
+ 'mbuildpl_arg' => q[],
+ 'mbuild_arg' => q[],
+ 'mbuild_install_build_command' => q[./Build],
+ 'mbuild_install_arg' => q[],
+};
+print STDERR "Reading MyConfig!\\n";
+1;
+EOF
+ close $fh or die "Can't close $f: $!";
+
+ $ENV{APXS} = "$Sw/bin/apxs";
+
+ eval "use CPAN";
+
+ # dsys "echo upgrade | $Sw/bin/cpan";
+ CPAN::Shell->upgrade("/./");
+ # my $inst = sub { dsys "$Sw/bin/cpan install @_" };
+ my $inst = sub { CPAN::Shell->install(@_) or
+ CPAN::Shell->force("install", @_) };
+
+ for my $m (@modules)
+ {
+ if ($m =~ /^\//)
+ {
+ print "Installing $m\n";
+ my $c =
+ {
+ %{$config->{$m} || {}},
+ unpack => sub {},
+ dir => sub { $m },
+ test => sub {},
+ };
+ build $m, $m, $c;
+ print "installed $m via Makefle.PL\n";
+ }
+ else
+ {
+ next if $m =~ /^XX/; # don't want these right now
+ print "Installing $m\n";
+ # for my $mod (CPAN::Shell->expand("Module", "/./")) { print $mod->id, "\n" }
+ if (my $mod = CPAN::Shell->expandany($m))
+ {
+ # my $mod = CPAN::Shell->expand("Module", "/$m/") or die "Can't expand [$m]";
+ print $mod->as_string;
+ next if $mod->uptodate;
+ # printf "Module %s is installed as %s and will be updated to %s from CPAN\n",
+ # $mod->id, $mod->inst_version || "-", $mod->cpan_version;
+
+ if ($config->{$m})
+ {
+ print "Installing $m version ", $mod->cpan_version, "\n";
+ my $b = $mod->cpan_file;
+ $b =~ s|.*/||;
+ $b =~ s|\.tar.gz||;
+ $b = "$Sw/.cpan/build/$b";
+ sys "rm -rf $b-*";
+ $mod->get;
+ ($b) = glob "$b-*" unless -d $b;
+ die "Can't find build dir $b" unless -d $b;
+ print "Building in $b\n";
+ my $c =
+ {
+ %{$config->{$m}},
+ unpack => sub {},
+ dir => sub { $b },
+ $Blead ?
+ (
+ make => sub { sys "make" },
+ install => sub { sys "make install" },
+ ) : ()
+ };
+ build $m, $b, $c;
+ }
+ else
+ {
+ $inst->($m);
+ }
+ }
+ else
+ {
+ warn "Can't expand [$m]";
+ $inst->($m);
+ }
+ print "installed $m via CPAN\n";
+ }
+ }
+ }
+
+ if (building "coverage")
+ {
+ my $c;
+ $c .= "/usr/local/pkg/base/sw/bin/perl $Sw/bin/" if $Blead;
+ $c .= "cpancover -directory $Sw/.cpan/build -outputdir $Sw/cpancover ";
+ $c .= "-outputfile index.html -report ";
+ $c .= $Blead ? "html" : "html_basic";
+ # $c .= " -force";
+ $c .= " -redo_html";
+ dsys $c;
+ }
+
+ if (building "postgres" || building "dry")
+ {
+ my $pg = "$Installation/pgsql";
+ my $data = "$pg/data";
+ my $log = "$pg/postgres.log";
+ my $user = getpwuid($<);
+ print <<"EOT";
+
+Now run the following commands as root:
+
+rm -rf $pg
+mkdir -p $data
+chown -R postgres.postgres $pg
+su - postgres
+$Sw/bin/initdb -D $data
+$Sw/bin/pg_ctl start -l $log -D $data
+sleep 10
+$Sw/bin/createuser -P -e -s factr
+$Sw/bin/createdb -e -O factr factr
+
+# $Sw/bin/psql factr
+
+and stop the db with:
+
+$Sw/bin/pg_ctl stop -l $log -D $data
+
+EOT
+ }
+}
+
+$Perl_src = get_src($Perl_src, $Src_dir);
+
+$Sw = "$Installation/sw";
+$Perl = "$Sw/bin/perl";
+$ENV{PATH} = "$Sw/bin:$ENV{PATH}";
+$ENV{LD_LIBRARY_PATH} = "$Sw/lib:$ENV{LD_LIBRARY_PATH}";
+$ENV{AUTOMATED_TESTING} = 1;
+
+print "sw directory is $Sw\n";
+print "perl is $Perl\n";
+print "PATH is $ENV{PATH}\n";
+print "LD_LIBRARY_PATH is $ENV{LD_LIBRARY_PATH}\n";
+
+# $Perl = <${Perl}5*> unless -e $Perl;
+# die "Can't find perl under $Sw" unless -e $Perl;
+
+main
+
+__END__
+
+# cd /opt/bcy
+# chown -R t136103:ubsadmin sw
+$ cd $root/install
+$ perl ./buildperl ~/g/src perl-5.10.0 /opt/bcy
+# rm -rf sw/.cpan* sw/.subversion sw/bin/perl5.10.0
+# chown -R ubcy1001:gbcy1001 sw
+# chmod -R 755 sw
+$ cd /app/sw/wss/current
+$ mv base/sw sw.old
+$ cp -a /opt/bcy/sw base
+
+
+
+$ perl ./buildperl ~/g/perl/src blead /usr/local/pkg/factr perl modules apache mod_perl zlib openssl subversion
+$ perl ./buildperl ~/g/perl/src perl-5.8.8 /usr/local/pkg/factr-5.8.8 perl modules apache zlib openssl subversion